需求是这样的:
一个很大的文件,例如 5 千万行,每行是一个字符 a 。 想删掉最后一行。
我知道的一个办法是重新写入一次,但是耗时很多。
请问应该怎么操作才能避免重写文件呢?
使用 "w" 或者 "w+" 打开文件好像是直接清空文件?(我尝试使用 w+ 打开,seek 以后啥也不写入,文件被清空)
参考这个方法:如何编辑一个大文件 ( https://www.zhihu.com/question/20654719/answer/605322220 ) ,但是 "r+" 打开可以只修改特定位置而避免重写,但是无法把后面的内容截断。
实验代码( python3 ):
1
tabris17 2020-04-14 10:15:52 +08:00
ftruncate
|
2
rrfeng 2020-04-14 10:16:18 +08:00 via Android
seek()
|