首页 > 解决方案 > 如何在 Python 中获取总行数?

问题描述

我需要在 python 中获取一个大文件(数十万行)的总行数。我的问题是如何在不计算特殊字符的情况下计算整行?我只需要 X、Y、dx 和 dy 中带有数字的行。 例子

到目前为止,这是我的方法,但它包括所有行。我不必计算带有特殊字符的行数

with open('frequency_map.e00000.fm', 'r') as f:
    line_count = 0
    for line in f:
        line_count += 1

print(line_count)

标签: python-3.x

解决方案


从您的描述来看,您可以排除其中包含文字"*"的任何行。无需解析csv:"*" in line测试字符是否出现。

与此条件不匹配的sum所有行就足够了,那么:

with open('frequency_map.e00000.fm', 'r') as f:
    line_count = sum(1 for line in f if '*' not in line)
    #            |   |               \ valid lines do not have a "*" in them
    #            |   \ add 1 for every valid line
    #            \ sum over all lines

推荐阅读