python - csv.DictReader 中的行数

标签 python iterator python-3.x

我有一个 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/

相关文章:

python - 如何向自动生成的 Python Selenium 脚本添加参数

python - 矩阵类方法中的参数错误 - Python

c++ - 二进制搜索递减列表?

Java:HashMap 声称它有 key ,但不知何故没有

python - Tensorflow:对文本数据进行分类

python - 在 Python 中打印可被素数整除的数字

c++ - 我要在队列前端访问时锁定互斥体吗

python - 我如何在内部跟踪 Python 枚举值?

Django 2.2.3 如何获取所有 url 模式和所有 View 名称

python-3.x - 在 Pandas 滚动中使用带参数的自定义函数