需求是这样的:
一个很大的文件,例如 5 千万行,每行是一个字符 a 。 想删掉最后一行。
我知道的一个办法是重新写入一次,但是耗时很多。
请问应该怎么操作才能避免重写文件呢?
使用 "w" 或者 "w+" 打开文件好像是直接清空文件?(我尝试使用 w+ 打开,seek 以后啥也不写入,文件被清空)
参考这个方法:如何编辑一个大文件 ( https://www.zhihu.com/question/20654719/answer/605322220 ) ,但是 "r+" 打开可以只修改特定位置而避免重写,但是无法把后面的内容截断。
实验代码( python3 ):
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.