我有以下代码
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)
关于python - 数据未传递给 for 循环中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58984651/