Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我想从一个大的纯文本文件中编辑一行文本,并希望就地执行此操作,例如 Python 的 fileinput 包:
fileinput.input(file, inplace=1)
我目前的方法是将整个文件读入 []string 并将它们写回,我认为这非常低效。那么在 Go 中执行此操作的惯用方式是什么?
请注意,Python 的就地 Fileinput 通过将文件复制到备份文件然后将输出重定向到原始文件来工作。因此,它与您当前的方法并没有什么不同,只是它使用临时文件而不是将其加载到内存中。除非文件非常大,否则将其加载到内存中是可以的。
如果文件很大,我建议将它复制到一个临时目录,然后使用bufio包中的函数逐行读取,修改所需内容并将结果写入与原始文件同名的新文件。
bufio