关于相关问题,我想知道如何在Python的文件开头添加文本和/或行,因为它被建议是一种更简单的文本/文件操作语言。所以,当我问上一个关于C ++的链接问题时,有人能指出我如何用Python做到这一点吗?
引用链接(相关)问题:
我希望能够在文件的开头添加行。
我写的这个程序将从用户那里获取信息,并准备 它写入文件。那个文件将是一个差异 已经生成,以及添加到开头的是什么 描述符和标记,使其与Debian的DEP3补丁兼容 标记系统。
有人有任何建议或代码吗?
答案 0 :(得分:4)
最近有很多类似的文件I / O问题..
简而言之,您需要创建一个新文件
如果,您可以保证添加到开头的每个新行都比开头的每个相应原始行长,您可以这样做:
f = open('file.txt','r+')
lines = f.readlines() # read old content
f.seek(0) # go back to the beginning of the file
f.write(new_content) # write new content at the beginning
for line in lines: # write old content after new
f.write(line)
f.close()
上面的例子在搜索文件开头的位置之后将所有数据全部写入其中,因为文件的内容被覆盖了新的内容。
否则您需要写入新文件
f = open('file.txt','r')
newf = open('newfile.txt','w')
lines = f.readlines() # read old content
newf.write(new_content) # write new content at the beginning
for line in lines: # write old content after new
newf.write(line)
newf.close()
f.close()
答案 1 :(得分:0)
这样的事情应该有效:
with open('new.txt', 'w') as new:
with open('prefix.txt') as prefix:
new.write(prefix.read())
with open('old.txt') as old:
new.write(old.read())
如果old.txt或prefix.txt包含二进制内容,则应在其各自的打开调用中添加“rb”参数,并为第一次open()调用的flags参数添加“b”。