如何在 python 中实现诸如“head”和“tail”命令之类的东西并按文本文件的行向后读取?
原文由 user739650 发布,翻译遵循 CC BY-SA 4.0 许可协议
如何在 python 中实现诸如“head”和“tail”命令之类的东西并按文本文件的行向后读取?
原文由 user739650 发布,翻译遵循 CC BY-SA 4.0 许可协议
head
很简单:
from itertools import islice
with open("file") as f:
for line in islice(f, n):
print line
tail
如果你不想将整个文件保存在内存中,那就更难了。如果输入是文件,您可以从文件末尾开始读取块。如果输入是管道,原始的 tail
也有效,因此更通用的解决方案是读取并丢弃整个输入,最后几行除外。一个简单的方法是 collections.deque
:
from collections import deque
with open("file") as f:
for line in deque(f, maxlen=n):
print line
在这两个代码片段中, n
是要打印的行数。
原文由 Sven Marnach 发布,翻译遵循 CC BY-SA 3.0 许可协议
2 回答5.2k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
4 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
2 回答869 阅读✓ 已解决
1 回答1.7k 阅读✓ 已解决
这是我的个人文件类 ;-)
用法示例: