读行,直到某个字符串出现,然后将其删除

2024-05-20 19:36:18 发布

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

我有一个小python代码,它打开一个文件,读取它直到某个字符串,然后打印它

代码如下:

filename = 'teste.txt'

with open(filename, 'r') as input:
   for line in input:
     print(line)
     if '**==**' in line:
       break

打印完成后,我需要将其从文件中删除,基本上删除行直到**==**,保留其他行不变

我试过:

search = '**==**'
for i, line in enumerate(lines):
  print(line)
  if search in line:
      break

if i < len(lines) - 1:
    with open('teste.txt', 'w') as f:
        f.write('\n'.join(lines[i + 1:]))

但是每次我运行代码时,“下一行块”之间就开始有很多空格

该文件的大小可以在6到10 MB之间

对我如何做有什么建议吗


Tags: 文件代码intxtforinputifas
1条回答
网友
1楼 · 发布于 2024-05-20 19:36:18

这应该可以做到:

with open('teste.txt') as f:
    lines = f.readlines()

for i, line in enumerate(lines):
    if search in line:
        lines = lines[i + 1:]
        break

with open('teste.txt', 'w') as f:
    f.writelines(lines)

相关问题 更多 >