在python中添加到文件的开头

时间:2014-07-03 16:59:10

标签: python file add seek

有没有人知道在开头输入文件并在第一行添加文件的简单方法?

我尝试了以下操作:

f.seek(0)

f.write("....")

f.close() 

唯一的问题是它没有添加我想要的新第一行,而是替换它。

有没有人知道任何方式,无论是在编写文件时将最后一行添加到顶部还是在关闭它之后重新打开以在第一行添加一行而不覆盖或替换任何内容?

1 个答案:

答案 0 :(得分:2)

虽然丑陋但有效:

# read the current contents of the file
f = open('filename')
text = f.read()
f.close()
# open the file again for writing
f = open('filename', 'w')
f.write("This is the new first line\n")
# write the original contents
f.write(text)
f.close()

您正在寻找的单词也是待定的。此外,如果您无法将文件加载到内存(如果文件太大),我也不会认为这会有效。

如果它太大,你可以写行,然后逐行写。

<强>交替 (未经测试)

您可以使用fileinput

>>> import fileinput
>>> for linenum,line in enumerate( fileinput.FileInput("file",inplace=1) ):
...   if linenum==0 :
...     print "new line"
...     print line.rstrip()
...   else:
...     print line.rstrip()
...

来自:How to insert a new line before the first line in a file using python?