如何在Python中的特定行将txt文件插入到另一个txt文件中

如何在Python中的特定行将txt文件插入到另一个txt文件中,python,text-files,Python,Text Files,这是Python的一个快速问题。这就是我的问题:我试图在另一个txt文件的特定行中插入一个txt文件。这就是我所尝试的: #修改TXT文件 将open(“avengers.txt”、“w”)作为文件1,将open(“guarders.txt”、“r”)作为文件2: 对于文件1中的行: 打印行 如果行==“黑寡妇”: 对于文件2中的第2行: 文件1.写入(第2行) 但它给了我一些奇怪的东西(很多断线) 复仇者 监护人.txt -----结果---- 我想做的只是: 复仇者 这是复仇者 字符列表:

这是Python的一个快速问题。这就是我的问题:我试图在另一个txt文件的特定行中插入一个txt文件。这就是我所尝试的:

#修改TXT文件
将open(“avengers.txt”、“w”)作为文件1,将open(“guarders.txt”、“r”)作为文件2:
对于文件1中的行:
打印行
如果行==“黑寡妇”:
对于文件2中的第2行:
文件1.写入(第2行)
但它给了我一些奇怪的东西(很多断线)

复仇者 监护人.txt -----结果----

我想做的只是:

复仇者
这是复仇者
字符列表:
美国队长
铁人
残骸
鹰眼
黑寡妇
Groot使用方法,可以将文本转换为列表对象。然后,找到字符串的索引,将文本放在后面:

with open("avengers.txt", "r+") as file1, open("guardians.txt", 'r') as file2:
    file_new = file1.readlines()
    file1.seek(0)
    bw_index = file_new.index('Blackwidow\n')
    file_new = file_new[:bw_index+1] + file2.readlines() + file_new[bw_index+1 :]
    file1.write(''.join(file_new))

@MagicaNexus,如果文件非常大,并且需要在文件末尾的某个位置插入行,那么这段代码将使用比我更多的ram。
Groot
Rocket
Star Lord
Gamora
Drax
This is the avengers

List of the characters :
Captain America
Iron Man
Hulk
Hawkeye
Blackwidow
Groot <---------------- Insert text here
Rocket
Star Lord
Gamora
Drax

The story is great
About about the movies :
....
....
with open("avengers.txt", "r+") as f1, open("guardians.txt") as f2:
    line = f1.readline()
    while line:
        if line.startswith("Blackwidow"):
            offset = f1.tell()
            rest_of_file = f1.readlines()
            f1.seek(offset)
            f1.writelines(f2.readlines())
            f1.writelines(rest_of_file)
            break
        line = f1.readline()
with open("avengers.txt", "r+") as file1, open("guardians.txt", 'r') as file2:
    file_new = file1.readlines()
    file1.seek(0)
    bw_index = file_new.index('Blackwidow\n')
    file_new = file_new[:bw_index+1] + file2.readlines() + file_new[bw_index+1 :]
    file1.write(''.join(file_new))