在文件開頭附加一行
修改文件的開頭可能具有挑戰性,尤其是在文件很大的情況下。傳統上,使用單獨的文件作為解決方法。但是,使用 Python 有更有效的方法來實現此目的。
了解檔案模式
以追加模式('a')開啟檔案時,任何寫入都是無論檔案指標的當前位置如何,都定向到檔案末尾。當嘗試修改文件的開頭時,這是有問題的。
解決方案1:將檔案載入記憶體
對於可以載入到記憶體中的較小文件,可以使用以下程式碼片段:
<code class="python">def line_prepender(filename, line): with open(filename, 'r+') as f: content = f.read() f.seek(0, 0) f.write(line.rstrip('\r\n') + '\n' + content)</code>
此方法將整個檔案讀取到記憶體中,將新行附加到開頭,然後重寫檔案。
解決方案2:使用fileinput
對於較大的文件,fileinput 模組可能很有用:
<code class="python">def line_pre_adder(filename, line_to_prepend): f = fileinput.input(filename, inplace=1) for xline in f: if f.isfirstline(): print(line_to_prepend.rstrip('\r\n') + '\n' + xline, end='') else: print(xline, end='')</code>
此方法對於大文件更有效,因為它不會將整個文件載入到記憶體中。它逐行迭代文件,在第一行的開頭列印新行,然後不修改其餘行。請注意,此方法要求文件可寫入。
以上是如何在 Python 中高效地向文件開頭添加一行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!