我有一个 csv DictReader 对象(使用 Python 3.1),但我想知道阅读器在迭代之前包含的行数/行数。如下所示...
myreader = csv.DictReader(open('myFile.csv', newline=''))
totalrows = ?
rowcount = 0
for row in myreader:
rowcount +=1
print("Row %d/%d" % (rowcount,totalrows))
我知道我可以通过遍历阅读器来获得总数,但是我无法运行“for”循环。我可以遍历阅读器的副本,但我找不到如何复制迭代器。
我也可以用
totalrows = len(open('myFile.csv').readlines())
但这似乎是不必要的重新打开文件。如果可能,我宁愿从 DictReader 获取计数。
任何帮助将不胜感激。
艾伦
最佳答案
rows = list(myreader)
totalrows = len(rows)
for i, row in enumerate(rows):
print("Row %d/%d" % (i+1, totalrows))
关于python - csv.DictReader 中的行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2890549/