【发布时间】:2015-10-09 02:57:31
【问题描述】:
我正在使用 pythons csv 阅读器。如何以忽略空行的方式使用以下代码。
import csv
f1 = open ("ted.csv")
oldFile1 = csv.reader(f1, delimiter=',', quotechar='"')
oldList1 = list(oldFile1)
f2 = open ("ted2.csv")
newFile2 = csv.reader(f2, delimiter=',', quotechar='"')
newList2 = list(newFile2)
f1.close()
f2.close()
with open("ted.csv") as f1, open("ted2.csv") as f2, open('foo.csv', 'w') as out:
r1, r2 = csv.reader(f1), csv.reader(f2)
st = set((row[0], row[3]) for row in r1)
wr = csv.writer(out)
for row in (row for row in r2 if (row[0],row[3]) not in st):
wr.writerow(row)
【问题讨论】:
-
您的 csv 文件实际上是什么样的?您可以在几个示例行中进行编辑,包括空白行吗?另外,您得到的具体错误是什么,Python 是否引发异常或者您只是没有得到您想要的结果?
-
csv 中的第一行是空行。我得到的错误是 IndexError: list index out of range。如果我手动删除第一个空行并运行,我不会收到任何错误。
标签: python csv python-3.x blank-line