我想让python读取.txt文件的最后三行.我也试图将每一行添加为列表中的元素.
例如:
**list.txt**
line1
line2
line3
**python_program.py**
(read list.txt, insert items into line_list)
line_list[line1,line2,line3]
Run Code Online (Sandbox Code Playgroud)
但是我对这个过程有点困惑.
任何帮助将不胜感激!
如果你正在处理一个非常大的文件怎么办?阅读内存中的所有行将是非常浪费的.另一种方法可能是:
from collections import deque
d=deque([], maxlen=3)
with open("file.txt") as f:
for l in f:
d.append(l)
Run Code Online (Sandbox Code Playgroud)
这在给定时间内仅在读取的最后三行中保留在内存中(deque丢弃每个附加处的过量的最旧元素).
正如@ user2357112指出的那样,这也会起作用,并且更具合成性:
from collections import deque
d=None
with open("file.txt") as f:
d=deque(f, maxlen=3)
Run Code Online (Sandbox Code Playgroud)