我的代码:
import os
file_handle = open("/home/naseer/Python/newfile","r+")
file_handle.seek(6)
file_handle.write("hai\n")
我的 newfile 内容:
opera\n
mount\n
singapore
在我的代码中,我正在寻找 newfile 的opera
(第一行)的结尾,我想在那里写hai\n
,即我想要使我的 newfile 如下所示:
opera\n
hai\n
mount\n
singapore
但是我的代码会覆盖我文件的当前内容,这不是我想要的:
opera\n
hai\n
t\n
singapore
这不是附加的,据我所知,有一种打开文件的特定模式来实现这一点。我不知道这种要求是否违法。
如果这是非法的,为什么?
答案 0 :(得分:1)
您正在尝试在文件中插入新行,但.write()
不能正常工作;它覆盖现有的文件内容。
相反,您应该创建一个包含所需内容的新文件,删除旧文件,并将新文件重命名为旧文件名。
答案 1 :(得分:1)
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\n mount\n singapore
在运行此脚本后:
opera\n hai\n mount\n singapore
答案 2 :(得分:0)
只需更改
file_handle=open("/home/naseer/Python/newfile","r+")
致:
file_handle=open("/home/naseer/Python/newfile","a")
file_handle.write("hai\n")
“r”代表写入以前的数据,“a”代表追加。 如果你想添加一个新行,那么append应该适合你。