从文件inp中删除一行

2024-04-26 09:24:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个.txt,我想要一个python脚本来处理它。在

My.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

如果第6行写了一些东西,但是没有用旧的.txt做新的,我想删除.txt的第一行。我不太懂这个窍门:(

我知道我可以删除第一行:

       lines = file(idpath, "r").readlines()  
       del lines[0]  
       file(idpath,"w").writelines(lines) 

如有任何帮助,我将不胜感激


Tags: txt脚本myfilelinesidpathd8fdbc37
2条回答

我想出来了!现在我明白了,这很简单

 f = open('file','r')  
 lines = f.readlines()
 if lines[5]: del lines[0]

由于文件范例是一个字节数组(可调整大小),所以不能简单地从内部删除数据。相反,您可以执行以下任一操作:

  • 将要删除的片段后面的所有数据向后滑动以覆盖它,然后调整文件的大小
    (老式的,通常用于内存映射文件或当您负担不起另一份数据拷贝时)
  • 将所有结果数据写入新文件,然后将其移到旧文件上
    (在批处理中是典型的,因为move在同一文件系统中是原子的和即时的,即使文件被其他文件打开,也可以工作(取决于操作系统),并且您可以在应用更改之前检查结果)
  • 将所有需要保留的数据读入内存,然后将文件截断为零字节并写入新数据
    (通常用于文本编辑器。文件无法被其他文件打开以供写入,当您截断它时,旧内容将丢失。o哦,你不需要权限来创建另一个文件并覆盖这个文件)

至于列表操作,RTMSequence types。在

相关问题 更多 >