2011-06-30 24 views
7

我想寫一個python腳本來更新一些大文件的頭文件(只有第一行),但是由於新頭文件不必是相同的大小(以字節爲單位),無論如何,我可以更改標題而不觸及大文件的其餘部分?或者我必須通讀它們並將它們寫回檔案?在Python中改變文件頭的有效方法

+0

如果修改頭部,則需要在第一行之後寫入文件的其餘部分。這只是文件系統的工作方式。 –

回答

4

不,您可以在不觸及整個文件的情況下對文件進行的唯一操作是truncation,replacement of same size和追加。

但是,您可以緩存文件的相對較小的部分,並在讀取當前駐留在新位置的所有數據後寫入它們,以避免內存耗盡。如果速度有問題,請考慮使用mmap

+0

是的,我認爲這不是我可以避免的。謝謝大家 – John

1

我不熟悉任何可以刪除任意文件塊的操作系統,所以Python不能爲您提供該功能。恐怕你被卡住了巨大文件的其餘部分。

0

您必須讀取和寫入整個文件,因爲文件的其餘內容將不得不移動以適應標頭大小的差異。

相關問題