如何在Python中廉价地获取行计数?

如何在Python中廉价地获取行计数?

我需要获得python中大型文件(数十万行)的行数。什么是记忆和时间上最有效的方式?

我现在做的是:

def file_len(fname):
    with open(fname) as f:
        for i, l in enumerate(f):
            pass
    return i + 1

有可能做得更好吗?


米琪卡哇伊
浏览 523回答 5
5回答

慕森王

再好不过了。毕竟,任何解决方案都必须读取整个文件,计算出多少\n你有,并返回结果。你有一个更好的方法来做到这一点,而不阅读整个文件?不确定.。最好的解决方案总是I/O绑定,最好的方法是确保不使用不必要的内存,但看起来您已经解决了这一问题。

子衿沉夜

有一行,可能很快:num_lines = sum(1 for line in open('myfile.txt'))
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python