一尘不染

Python-如何在Python中便宜地获取大文件的行数?

python

我需要在python中获取一个大文件(数十万行)的行数。内存和时间最有效的方法是什么?

目前,我这样做:

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

有可能做得更好吗?


阅读 726

收藏
2020-02-10

共1个答案

一尘不染

没有比这更好的了。

毕竟,任何解决方案都必须读取整个文件,找出有多少文件\n,然后返回该结果。

你是否有一种更好的方法,而无需读取整个文件?不确定…最好的解决方案将永远是受I / O约束的,你可以做的最好的事情是确保你不使用不必要的内存,但是看起来你已经解决了这一问题。

2020-02-10