[英]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.