Python如何读取.txt文件的最后三行,并将这些项放入列表中?

ice*_*hac 0 python list

我想让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)

但是我对这个过程有点困惑.

任何帮助将不胜感激!

Mat*_*lia 5

如果你正在处理一个非常大的文件怎么办?阅读内存中的所有行将是非常浪费的.另一种方法可能是:

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)

  • `d = deque(f,maxlen = 3)`也可以.它可能不会更快 - 这可能是I/O限制 - 但它更短.它是否更清晰可能取决于读者. (2认同)