我有以下代码
with open('data.csv') as csvfile:
data = csv.reader(csvfile, delimiter=' ')
print(data)
row_count = row_count = sum(1 for lines in data)
print(row_count)
for row in data:
print(row)
它打印:
<_csv.reader object at 0x00000295CB6933C8>
505
因此它将 data 打印为一个对象并将 row_count 打印为 505。只是似乎没有在 for 循环中打印 row .我不确定为什么没有任何内容传递给变量行?
请您参考如下方法:
data = csv.reader(csvfile, delimiter=' ')
print(data)
row_count = row_count = sum(1 for lines in data)
您刚刚阅读了整个文件;你已经用尽了输入。您的第二个 for 已无任何可查找的内容。您必须重置阅读器。最明显的方法是关闭文件并重新打开。不太明显……也不太灵活……是将文件指针重置到开头,使用
csvfile.seek(0)
这不适用于所有文件子类型,但适用于 CSV。
更好的是,在打印时简单地计算行数:
以 open('data.csv') 作为 csv 文件: data = csv.reader(csvfile, delimiter=' ')
row_count = 0
for row in data:
print(row)
row_count += 1
print(row_count)
