2013-09-27 78 views
-2

我有一個大文件,每次寫入一行到文件中,首先檢查文件大小,如果大小達到極限,刪除行首。並插入在結束。誰可以幫助我?Python刪除大文件的起始行

其他人?幫幫我。

+1

你有什麼特別的問題? –

回答

2

對不起,給你,但這是不合適的架構決定。

這個問題隱藏在文件系統的深處,而不是Python。爲了刪除文件中的第一行,您實際上必須讀取整個文件,然後將其全部(第一行除外)寫回存儲驅動器,效率非常低。

的Python代碼做這將是這個樣子:

with open('file_path', 'r') as f: 
    lines = f.read().splitlines() 

with open('file_path', 'w') as f: 
    for item in lines[1:]: 
     thefile.write("%s\n" % item) 

如果你能告訴我們究竟你要實現的目標,我們可能會拿出一個更好的解決方案。

例如,如果它是一個日誌文件,經常在軟件中使用的解決方案是文件旋轉。即,一旦log_file1達到其容量,它就開始寫入log_file2,然後log_file3,然後log_fileN,然後返回到log_file1。其中N是您希望擁有的最大文件數量。

+0

是的,它是一個日誌文件。文件不能超過1G.only一個文件。 – Anakin

+0

謝謝,其他人? – Anakin