首页 > 解决方案 > 如何将文本添加到特定的文件行?

问题描述

我已经编写了一堆文件,我必须在第一行中添加一个文本行。我试图用 来做到这一点seek(),但是这种方法会覆盖第一行的文本。我正在寻找可以改变一切并添加文本的东西。

def add_line(file):
    with open(file,'r+') as f:
        text="my_text"
        for line in f:
            if text in line:
                break
        else:
            f.write(text)
            print("Text was added in\n"+ file)

标签: pythonfile

解决方案


你不能。它称为文件偏移,如果您覆盖它指向的数据,它不会自动移动。

您需要先读取文件,然后打开一个新文件(在这里您可以覆盖文件)并根据需要写入数据。考虑这个文件:

→ cat file.text
line1
line2
line3

而这段代码

lines = ""
with open('file.text', 'r') as f:
    lines = f.read()

with open('file.text', 'w') as newf:
    newf.write("new first line\n")
    newf.write(lines)

执行后,文件内容如下:

→ cat file.text
new first line
line1
line2
line3

推荐阅读