使用Python将文本插入特定文本后的文本文件中

Che*_*ian 4 python text

我必须编辑一些文本文件以包含新信息,但我需要根据周围的文本在文件中的特定位置插入该信息.

这不是我需要它的方式:

 with open(full_filename, "r+") as f:
        lines = f.readlines() 
        for line in lines:
            if 'identifying text' in line:   
                offset = f.tell()
                f.seek(offset)  
                f.write('Inserted text')
Run Code Online (Sandbox Code Playgroud)

...因为它将文本添加到文件的末尾.如何将其写入识别文本后的下一行?

(AFAICT,这不是类似问题的重复,因为没有一个能够提供这个答案)

DSM*_*DSM 7

如果您不需要在适当的地方工作,那么可能是这样的:

with open("old.txt") as f_old, open("new.txt", "w") as f_new:
    for line in f_old:
        f_new.write(line)
        if 'identifier' in line:
            f_new.write("extra stuff\n")
Run Code Online (Sandbox Code Playgroud)

(或者,兼容Python-2.5):

f_old = open("old.txt")
f_new = open("new.txt", "w")

for line in f_old:
    f_new.write(line)
    if 'identifier' in line:
        f_new.write("extra stuff\n")

f_old.close()
f_new.close()
Run Code Online (Sandbox Code Playgroud)

转过来

>>> !cat old.txt
a
b
c
d identifier
e
Run Code Online (Sandbox Code Playgroud)

>>> !cat new.txt
a
b
c
d identifier
extra stuff
e
Run Code Online (Sandbox Code Playgroud)

(关于在'string2'中使用'string1'的常见警告:'enamel'中'name'为True,''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''