在python中写入文件时跳过几行

问题描述

我正在使用 fileinput.FileInput 从文件获取读取行。

for line in fileinput.FileInput("abc.txt",inplace=1):
    if matching_string in line:
        #print few lines
    print line,

例如abc.txt是

Hello
World
This is
Python
Script
Bye

matching_string 是“这个”。 我希望输出“abc.txt”为:

Hello
World
File changed
C++
Script
Bye

我需要修改间的一些行,跳过的行数不固定。有时,我可能需要像上面的例子那样跳过 2 行,有时只需要 1 行或更多行。

解决方法

fileinput 对象分配给变量。然后您可以使用 next() 读取循环体内的一行。

with fileinput.FileInput("abc.txt",inplace=1) as f:
    for line in f:
        if matching_string in line:
            #print few lines
            next(f) # skip over the next input line
        print(line)