如何在Python中获得总行数?

时间:2018-07-23 13:38:43

标签: python-3.x

我需要在python中获得一个大文件(数十万行)的总行数。我的问题是如何计算总行数而不计算特殊字符?我只需要X,Y,dx和dy中带有数字的行。 Example

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

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

print(line_count)

2 个答案:

答案 0 :(得分:1)

从您的描述来看,您只能排除其中带有文字"*"的任何行。无需解析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

答案 1 :(得分:0)

尝试一下:

file_handle = open('frequency_map.e00000.fm', 'r')
newlines=len(file_handle.readlines())
print('There are %d lines in the file.' % (newlines))