如何使用Go lang编辑大型文本文件?

Joe*_*Lyn 1 file-io go

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

fileinput.input(file, inplace=1)
Run Code Online (Sandbox Code Playgroud)

我目前的方法是将整个文件读入[]字符串并将其写回,我认为这非常低效.那么在Golang中这样做的惯用方法是什么?

谢谢.

小智 5

请注意,Python的inin Fileinput的工作原理是将文件复制到备份文件,然后将输出重定向到原始文件.所以它与你当前的方法并没有什么不同,只是它使用临时文件而不是在内存中加载它.将其加载到内存中可能没问题,除非文件非常大.

如果文件很大,我建议将其复制到临时目录,然后使用bufio包中的函数逐行读取,修改所需内容并将结果写入与原始文件同名的新文件.