将文本附加到文本文件而不替换它Python [重复]

Posted

技术标签:

【中文标题】将文本附加到文本文件而不替换它Python [重复]【英文标题】:Append text to a Text file without replacing it Python [duplicate] 【发布时间】:2019-12-24 17:45:57 【问题描述】:

我是 python 新手,我需要你们的帮助。

这是我的代码

Tk().withdraw() 
filename = askopenfilename(title='Choose a file', filetypes=[("Text Files", "*.txt")]) 

f = open(filename)


with open(filename,'r+',encoding="UTF-8") as file:
 file.write('test')
 file.write('\n')

file_contents = f.read() 

这是没有使用 file.write 的文本文件

Im a big noob in python please help me.

这是在使用 file.write 之后

test
ig noob in python please help me.

我的目标是将文本附加到文本文件的顶部,而不替换它下面的内容。

【问题讨论】:

看看这个答案,它可能会有所帮助:***.com/questions/5914627/… 【参考方案1】:

当你write 到一个文件时,它总是有效地覆盖文件流中的字节。您可能想要做的是先读取文件,然后编写必要的部分,然后将原始内容写回:

with open(filename,'r+',encoding="UTF-8") as file:
    data = file.read()
    file.write('test\n')
    file.write(data)

这应该就是您所需要的。删除 f = open(filename)file_contents = f.read() 行,因为您打开同一个文件两次。

【讨论】:

【参考方案2】:

只需先复制内容并在开头插入即可,如下所示:

with open(filename,'r+',encoding="UTF-8") as file:
 previous_content = file.read()
 file.write('test\n' + previous_content)

【讨论】:

以上是关于将文本附加到文本文件而不替换它Python [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用python 2.7通过变量写入文本文件[重复]

替换多行文本时如何在第一次出现时停止[重复]

在bash中将文本附加到具有模式匹配名称的文件[重复]

将 html 附加到找到“包含”的文本

Python:在 txt 文件中写入附加文本

使用 VBScripts 将文本文件 unix 行结尾替换为 Windows [重复]