2012-06-27 120 views
1

關於相關問題,我想知道如何將文本和/或行添加到Python中文件的開頭,正如它的建議這對於文本/文件操作來說是一種更簡單的語言。所以,當我問C++的以前的鏈接問題時,任何人都可以指出我如何用Python做到這一點?從鏈接(相關的)問題將文本和行添加到文件的開頭(Python)

報價:

我希望能夠行添加到文件的開頭。

我正在編寫的這個程序將從用戶處獲取信息,並準備將其寫入一個文件中 。那麼這個文件將是已經生成的 的差異,並且開頭添加的內容是 描述符和標籤,它們使其與Debian的DEP3補丁 標記系統兼容。

任何人有任何建議,或代碼?


相關:Adding text and lines to the beginning of a file (C++)

+5

見http://stackoverflow.com/questions/4454298/prepend-a-line-to-an-existing-file-in-蟒蛇 –

+0

我寧願看到,已經做了一些努力,在通過stackoverflow搜索類似的問題以前問及爲什麼那裏的答案不能滿足您的問題。我們經常看到重複的問題。因爲我們沒有前進,所以這對SO或社區並不是好事。 – pyfunc

+0

@pyfunc,從這個系統這裏,搜索功能超時。沒有其他系統可以用於搜索。我已經把這個,我自己的問題作爲Exact Dupe的近距離投票標記出來,並且已經在評論中張貼了這個鏈接,任何人都可以這樣做。 (系統不會讓我刪除) –

回答

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」。

4

有很多類似的文件的I/O問題,最近..

總之,你需要創建一個新的文件

  1. 第一,編寫新線將文件
  2. 讀取線從舊文件,並將其寫入文件

如果你能保證你的每一個新行添加到開始較長不是每一個相應的原始行開頭的,你可以做到這一點的地方:

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() 
相關問題