1
我想從一個大的純文本文件編輯文本的一行,並要做到這一點就地,像Python的的FileInput包:如何用Go lang編輯大文本文件?
fileinput.input(file, inplace=1)
我目前的做法是讀取整個文件到[]字符串並寫回來,我認爲這是非常低效的。那麼在Golang中做到這一點的慣用方式呢?
謝謝。
我想從一個大的純文本文件編輯文本的一行,並要做到這一點就地,像Python的的FileInput包:如何用Go lang編輯大文本文件?
fileinput.input(file, inplace=1)
我目前的做法是讀取整個文件到[]字符串並寫回來,我認爲這是非常低效的。那麼在Golang中做到這一點的慣用方式呢?
謝謝。
請注意,Python的inplace Fileinput通過將文件複製到備份文件,然後將輸出重定向到原始文件來工作。所以它與當前的方法並不完全不同,除了它使用臨時文件而不是將其加載到內存中。將它加載到內存中可能沒有問題,除非該文件非常大。
如果文件很大,我建議將它複製到一個臨時目錄,然後使用bufio
包中的函數逐行讀取它,修改需要的內容並將結果寫入一個新文件,其名稱與原本的。