2012-05-25 73 views
1

可能重複:
Editing specific line in text file in python刪除文本文件的第一行蟒蛇

我寫一個軟件,它允許用戶將數據寫入到一個文本文件中。但是,我不知道如何刪除文本文件的第一行並重寫該行。我希望用戶能夠通過點擊按鈕並輸入某些內容來更新文本文件的第一行,但這需要刪除並寫入一行作爲第一行,我不知道該如何實現。任何幫助,將不勝感激。

編輯:

所以我找到了該文件的第一行,並嘗試寫另一行,但不刪除前行。

file.seek(0) 
file.write("This is the new first line \n") 

回答

3

您沒有描述如何打開文件。如果你使用file = open(somename, "a")那個文件不會被截斷,但是最後寫入的是新數據(即使在大多數現代系統上尋找也是如此)。您必須用「r +」打開文件)

但是您的示例假定您所寫的行長度與用戶輸入的長度完全相同。文件中沒有行組織,只是字節,其中一些指示行結束。 Wat你需要做的是在內存中爲所有行使用一個臨時文件或臨時緩衝區,然後用替換的第一行寫出行。

如果事情放在內存(我假設,因爲很少有用戶會輸入這麼多它不適合),你應該能夠做到:

lines = open(somename, 'r').readlines() 
lines[0] = "This is the new first line \n" 
file = open(somename, 'w') 
for line in lines: 
    file.write(line) 
file.close()