python - 数据未传递给 for 循环中的变量

标签 python python-3.x for-loop

我有以下代码

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 .我不确定为什么没有任何内容传递给变量行?

这特别令人沮丧,因为如果我去掉 row_count 它就可以了!为什么? enter image description here

最佳答案

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/

相关文章:

python - 如何判断 django admin 中是否添加或更改了屏幕

django - “future”不是已注册的标签库。

Java:for(;;) 与 while(true)

python - 如何加快python函数中的 'for'循环?

python - python统计多个文档中的词频

python - 看不懂这个定时while循环属性报错

python - 从字符串中的字符生成像素矩阵

r - R 中嵌套 For/If 循环的算法效率

python - Holoviews:图框尺寸和纵横比

python-3.x - 如何将 mbox 转换为 JSON 结构?