在Python中将字符串数据附加到文本文件的顶部?

时间:2014-04-27 03:44:20

标签: python file-io

我的程序底部有一些代码,它应该在文本文件的开头添加一个文本标题。数据写入文件的底部。我正在阅读“学习Python的艰难之路”#39; .seek(0)将插入点放在开头,即0字节的位置。但是,我必须错误地实现该功能。

print 'Now, I will write a header to the original file to display copyright.'

append_copy = open(filename, "a+")
append_copy.seek(0)
append_copy.write("Copyright -- Ryan -- 2014\n")
append_copy.close()

print 'File closed and data written!'

2 个答案:

答案 0 :(得分:2)

你所做的事情不会奏效,但你想要的却无法完成。

以附加模式打开文件意味着写入始终附加在文件的末尾。那是"追加"意思是,所以这不应该是一个惊喜。

没有文件系统允许在任意点插入字节。您需要创建一个新文件,为其写入所需的字节,复制旧文件的内容,删除或重命名旧文件,然后重命名新文件。

答案 1 :(得分:2)

另一个答案是绝对正确的,这不能直接完成,但你不需要创建一个临时文件来做你想做的事。

如果你使用标志w打开它们,你可以使用Python的clobber文件,所以你不需要创建一个临时文件,假设你的原始文件小到可以保存在记忆中。

filename = "Foo.txt";
print 'Now, I will write a header to the original file to display copyright.'

append_copy = open(filename, "r")
original_text = append_copy.read()
append_copy.close()

append_copy = open(filename, "w")
append_copy.write("Copyright -- Ryan -- 2014\n")
append_copy.write(original_text)
append_copy.close()

print 'File closed and data written!'

记录了here

  

' W'仅用于写入(具有相同名称的现有文件)   擦除)