我有一个 .txt 文件,我想要一个 python 脚本来用它做一些事情。
我的 .txt 看起来像这样:
- 27b23815-4cbb-dfae-3e6d-38f67ec4266e
- 81a090bd-8973-bc37-5c7b-dc1a18e8ddee
- 7e1bf596-88bc-d8fd-9aea-278d5c689eaa
- 0b365fb0-dea4-53a1-fd27-6cbf9721602c
- 1c317dcf-73f4-edf5-b6a1-ad663d2b507e
- 6db8342d-1afb-2777-1a7f-a5daad06d2db
如果第六行写了一些内容,我想删除 .txt 的第一行,但不会从旧的 .txt 中创建新的。不太明白这个:(
我知道我可以删除第一行:
lines = file(idpath, "r").readlines()
del lines[0]
file(idpath,"w").writelines(lines)
将不胜感激任何帮助
由于文件范例是一个(可调整大小的)字节数组,因此您不能简单地从内部删除数据。相反,您可以执行以下任一操作:
- 将要删除的片段后面的所有数据向后滑动覆盖,然后调整文件大小
(老式的,通常与内存映射文件一起使用,或者当您买不起数据的另一个副本时)
- 将所有结果数据写入一个新文件,然后将其移至旧文件上
(典型的批处理,因为move
在同一文件系统中是原子的和即时的,即使文件被其他东西打开,也可以工作(取决于操作系统),并且您可以在应用更改之前检查结果)
- 将需要保留的所有数据读取到内存中,然后将文件截断为零字节并写入新数据
(对于文本编辑器来说是典型的。该文件无法打开以供其他文件写入,并且当您截断它时,旧内容就会丢失。OTOH,您不需要创建另一个文件并覆盖此文件的权限)
对于列表操作,RTM序列类型 https://docs.python.org/2/library/stdtypes.html#typesseq.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)