我需要在python中获取一个大文件(数十万行)的行数。内存和时间最有效的方法是什么?
目前,我这样做:
def file_len(fname): with open(fname) as f: for i, l in enumerate(f): pass return i + 1
有可能做得更好吗?
没有比这更好的了。
毕竟,任何解决方案都必须读取整个文件,找出有多少文件\n,然后返回该结果。
件\n
你是否有一种更好的方法,而无需读取整个文件?不确定…最好的解决方案将永远是受I / O约束的,你可以做的最好的事情是确保你不使用不必要的内存,但是看起来你已经解决了这一问题。
I / O