繁体   English   中英

读取行直到某个字符串并将其删除

[英]Read lines until certain string and remove it

我有一个小的 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

关于我如何做到这一点的任何建议?

这应该做的工作:

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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM