2014-07-03 70 views
0

有誰知道一個簡單的方法來在開始時輸入文件並將其添加到第一行?添加到python文件的開頭

我試着做以下幾點:

f.seek(0) 

f.write("....") 

f.close() 

唯一的問題是,它並沒有增加新的第一線與我想要的東西,而替換它。

有沒有人知道任何方式,無論是在寫入文件時將最後一行添加到頂部或關閉它並重新打開以將行添加到第一行而不覆蓋或替換任何內容?

回答

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?