簡體   English   中英

如果csv文件的最后一行在Python中只有1列,我怎么不讀它呢?

[英]How can I not read the last line of a csv file if it has simply 1 column in Python?

我有2列這樣的2個csv文件。

1 3 6 8\n                 1 3 7 2\n
7 9 1 3\n                 9 2 4 1\n
\n                        1 8 2 3\n

我只想讀取至少包含2列的行,因為只有\\ n的行沒有用。

目前,我正在使用以下文件讀取文件:

for line in f:
        list = line.strip("\n").split(",")
        ...

但是,我希望只有1列的行應被忽略。

如果它們是合法的逗號分隔的csv文件,請嘗試使用csv模塊。 與其他答案一樣,您仍然必須消除空白行。 為此,您可以測試一個空列表(當作為if語句中的表達式求值時為假值)。

import csv

with open('filename.csv' as f):
    reader = csv.reader(f)
    rows = [row for row in reader if row]

rows現在包含csv文件中的所有非空行。

當您點擊空白行時,您可以退出循環。

if not line.strip():
    break

您可以在去除空格字符后測試該行的真實值。 空字符串將具有虛假值,您可以通過在if塊中進行處理來避免該值:

for line in f:
      line = line.strip("\n")
      if line: # empty string will be falsy
           lst = line.split(",")

要讀取包含兩列的行,可以在拆分后測試行的長度:

for line in f:
      row = line.strip("\n").split()
      if len(row) >= 2:
           ...

請注意不要在代碼中使用名稱list ,因為這會掩蓋內置list類型。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM