csv.DictReader 中的行数

Number of lines in csv.DictReader(csv.DictReader 中的行数)
本文介绍了csv.DictReader 中的行数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

我有一个 csv DictReader 对象(使用 Python 3.1),但我想知道阅读器迭代之前包含的行数/行数.如下所示...

I have a csv DictReader object (using Python 3.1), but I would like to know the number of lines/rows contained in the reader before I iterate through it. Something like as follows...

myreader = csv.DictReader(open('myFile.csv', newline=''))

totalrows = ?

rowcount = 0
for row in myreader:
    rowcount +=1
    print("Row %d/%d" % (rowcount,totalrows))

我知道我可以通过遍历阅读器来获得总数,但是我无法运行for"循环.我可以遍历阅读器的副本,但我找不到如何复制迭代器.

I know I could get the total by iterating through the reader, but then I couldn't run the 'for' loop. I could iterate through a copy of the reader, but I cannot find how to copy an iterator.

我也可以用

totalrows = len(open('myFile.csv').readlines())

但这似乎是不必要的重新打开文件.如果可能,我宁愿从 DictReader 获取计数.

but that seems an unnecessary re-opening of the file. I would rather get the count from the DictReader if possible.

任何帮助将不胜感激.

艾伦

推荐答案

rows = list(myreader)
totalrows = len(rows)
for i, row in enumerate(rows):
    print("Row %d/%d" % (i+1, totalrows))

这篇关于csv.DictReader 中的行数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

python arbitrarily incrementing an iterator inside a loop(python在循环内任意递增迭代器)
Joining a set of ordered-integer yielding Python iterators(加入一组产生 Python 迭代器的有序整数)
Iterating over dictionary items(), values(), keys() in Python 3(在 Python 3 中迭代字典 items()、values()、keys())
What is the Perl version of a Python iterator?(Python 迭代器的 Perl 版本是什么?)
How to create a generator/iterator with the Python C API?(如何使用 Python C API 创建生成器/迭代器?)
Python generator behaviour(Python 生成器行为)