写入Python文件而不会丢失当前内容(插入)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了写入Python文件而不会丢失当前内容(插入)相关的知识,希望对你有一定的参考价值。
我的代码:
import os
file_handle = open("/home/naseer/Python/newfile","r+")
file_handle.seek(6)
file_handle.write("hai
")
我的新文件内容:
opera
mount
singapore
在我的代码中,我正在寻找我的新文件的opera
(第一行)的结尾,我想在那里写hai
,即我想创建我的新文件,如下所示:
opera
hai
mount
singapore
但是我的代码会覆盖我文件的当前内容,这不是我想要的:
opera
hai
t
singapore
这不是附加的,据我所知,有一种打开文件的特定模式来实现这一点。我不知道这种要求是否违法。
如果这是非法的,为什么?
答案
你试图在文件中插入一个新行,但是.write()
不能那样工作;它会覆盖现有的文件内容。
相反,您应该创建一个包含所需内容的新文件,删除旧文件,并将新文件重命名为旧文件名。
另一答案
filename = '/home/naseer/Python/newfile'
data = None
with open(filename, 'r') as myfile:
data = myfile.read().replace('opera\n', 'opera\n hai\n')
with open(filename, 'w') as myfile:
myfile.write(data)
那这个呢?
输入文件如下所示:
opera
mount
singapore
在运行此脚本后:
opera
hai
mount
singapore
另一答案
只是改变
file_handle=open("/home/naseer/Python/newfile","r+")
至 :
file_handle=open("/home/naseer/Python/newfile","a")
file_handle.write("hai
")
“r”代表写入以前的数据,“a”代表追加。如果你想添加一个新的行追加应该适合你。
以上是关于写入Python文件而不会丢失当前内容(插入)的主要内容,如果未能解决你的问题,请参考以下文章