如何以最节省内存和时间的方式获取大文件的行数?
def file_len(filename):
with open(filename) as f:
for i, _ in enumerate(f):
pass
return i + 1
原文由 SilentGhost 发布,翻译遵循 CC BY-SA 4.0 许可协议
如何以最节省内存和时间的方式获取大文件的行数?
def file_len(filename):
with open(filename) as f:
for i, _ in enumerate(f):
pass
return i + 1
原文由 SilentGhost 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答5.2k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
4 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
2 回答862 阅读✓ 已解决
1 回答1.7k 阅读✓ 已解决
没有比这更好的了。
毕竟,任何解决方案都必须读取整个文件,找出有多少
\n
,然后返回该结果。您是否有更好的方法可以在不阅读整个文件的情况下做到这一点?不确定…最好的解决方案将始终是 I/O 绑定,你能做的最好的事情就是确保你不使用不必要的内存,但看起来你已经涵盖了。