文件迭代,检查行存在

6 python iteration file

我正在使用像这样的for循环读取文件...

f = open("somefile.txt")

for line in f:
    do stuff
Run Code Online (Sandbox Code Playgroud)

除了我读过的每一行,我需要从它前面的行中取一个项目并将它放在当前行中.做这个的最好方式是什么?有没有办法阅读下一行或从中获取一些项目而不阅读它?

Gar*_*tty 7

如果我的理解是正确的,并且您希望依次使用下一行中的某些值来处理每一行,我的建议只是存储您当前正在阅读的值,并处理最后一个值.反向工作 - last_line您的当前行和行是下一行.

last_line = None

with open("somefile.txt") as f:
    for line in f:
        if not last_line == None:
            do_stuff(last_line, extract_needed_part(line))
        last_line = line
do_stuff(last_line) #The final line without anything following it.
Run Code Online (Sandbox Code Playgroud)

在数学术语中,不是行n和行n + 1,而是行n-1和行n.同样的效果.

这种方法的优点是它并不意味着在开始时加载整个文件.