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

2024-06-16 14:57:30 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

examples中,我发现它涉及到查找和完整的文件读取,以计数行,等等,我能检测到当前行是最后一行吗?我试图去检查“\n”是否存在,但在许多情况下,最后一行后面没有反斜杠n

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


Tags: 文件intxtforifislineopen
3条回答
import os
path = 'myfile.txt'
size = os.path.getsize(path)
with open(path) as f:
    for line in f:
        size -= len(line)
        if not size:
            print('this is the last line')
            print(line)
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

检查最后一行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

相关问题 更多 >