【发布时间】:2016-08-13 20:27:03
【问题描述】:
我将如何打印文本文件中的最后一行,该文本文件大约是 612 MB,并且有大约 400 万行由 This is a line 组成的文本。到目前为止,我有:
文件.py
f = open("foo.txt","r+")
datalist = []
for line in f:
datalist.append(line)
print(datalist[-1])
我在代码中看到的唯一问题是它使用了大量内存。我听说有人改用os.lseek,但我不知道如何实现它。
【问题讨论】:
-
通过
subprocess致电tail?它向后读取文件。无法击败它(除非在 python 中重新实现它)。你在 Linux 上吗? -
@jDo 遗憾的是,我在 Windows 10 上
-
print("This is a line")?我不确定如何理解您对输入格式的描述。 -
@Alex 好的...我认为this class 做得很好。它基本上是 Linux 的
head和tail的python 重新实现。如果您在此处或在 google 上搜索“read file backwards tail python”,还有很多其他示例。
标签: python python-3.x