如何在 Python 中廉价地获取大文件的行数?

新手上路,请多包涵

如何以最节省内存和时间的方式获取大文件的行数?

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

原文由 SilentGhost 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 257
2 个回答

没有比这更好的了。

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

您是否有更好的方法可以在不阅读整个文件的情况下做到这一点?不确定…最好的解决方案将始终是 I/O 绑定,你能做的最好的事情就是确保你不使用不必要的内存,但看起来你已经涵盖了。

原文由 Yuval Adam 发布,翻译遵循 CC BY-SA 2.5 许可协议

一行,可能很快:

 num_lines = sum(1 for line in open('myfile.txt'))

原文由 Kyle 发布,翻译遵循 CC BY-SA 2.5 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏