繁体   English   中英

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

[英]Appending string data to top of text file in Python?

我在程序底部有一些代码,应该在文本文件的开头添加一个文本头。 数据写入文件的底部。 我在《学习Python的艰难方法》中读到.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!'

您正在做的事情行不通,但是您想要的事情却无法完成。

以追加模式打开文件意味着写操作始终附加在文件末尾 这就是“附加”的含义,因此这并不完全是一个惊喜。

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

另一个答案是绝对正确的,它不能直接完成,但是您不需要创建临时文件即可执行所需的操作。

如果使用标志w打开文件,则可以使用Python 破坏文件。因此,假设原始文件足够小以容纳在内存中,则无需创建临时文件。

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!'

破坏记录在这里

'w'仅用于写入(具有相同名称的现有文件将被删除)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM