Python:检测文件读取的当前行是否是最后一行

新手上路,请多包涵

我正在逐行读取 Python 中的文件,我需要在读取时知道哪一行是最后一行,如下所示:

  f = open("myfile.txt")
 for line in f:
    if line is lastline:
       #do smth

从我发现的 示例 中,它涉及查找和完整的文件读出以计算行数等。我可以检测到当前行是最后一行吗?我试着去检查“\n”是否存在,但在很多情况下,最后一行后面没有反斜杠 N。

对不起,如果我的问题是多余的,因为我没有在 SO 上找到答案

原文由 Michael IV 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 946
2 个回答
secondLastLine = None
lastLine = None
with open("myfile.txt") as infile:
    secondLastLine, lastLine = infile.readline(), infile.readline()
    for line in infile:
        # do stuff
        secondLastLine = lastLine
        lastLine = line

# do stuff with secondLastLine

原文由 inspectorG4dget 发布,翻译遵循 CC BY-SA 3.0 许可协议

检查行 is 最后一行:

 with open("in.txt") as f:
    lines = f.readlines()
    last = lines[-1]
    for line in lines:
        if line is last:
            print id(line),id(last)
            # do work on lst line
        else:
            # work on other lines

如果你想要倒数第二行使用 last = lines[-2]

或者简单地说:

 with open("in.txt") as f:
    lines = f.readlines()
    last = lines[-1]
    for line in lines[:-1]:
        # work on all but last line
    # work on last

原文由 Padraic Cunningham 发布,翻译遵循 CC BY-SA 3.0 许可协议

推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏