猿问

如何就地编辑大文本文件

我想从一个大的纯文本文件中编辑一行文本,并希望在适当的位置执行此操作,例如 Python 的 fileinput 包:

fileinput.input(file, inplace=1)

我目前的方法是将整个文件读入 []string 并将它们写回,我认为这是非常低效的。那么在 Go 中这样做的惯用方法是什么?


四季花海
浏览 185回答 1
1回答

守着一只汪

请注意,Python 的就地 Fileinput 的工作方式是将文件复制到备份文件,然后将输出重定向到原始文件。因此,它与您当前的方法并没有什么不同,只是它使用临时文件而不是将其加载到内存中。将它加载到内存中是可以的,除非文件非常大。如果文件很大,我建议将它复制到一个临时目录,然后使用bufio包中的函数逐行读取它,修改所需的内容并将结果写入一个与原始文件同名的新文件。
随时随地看视频慕课网APP

相关分类

Go
我要回答