如何使用Python根据条件删除文本文件中的文本

问题描述 投票:0回答:1

我有一个文本文件,我想从中删除直到我看到值 'NODATACODE' 的所有数据。 文本文件中的文本是:

嗯嗯; MMMMM : MMMMMMMMMMN, AAAAAAAAAAA,52, AAAA,CCCCCC, MMMMM;嗯嗯嗯:嗯嗯嗯嗯嗯, AAAAAAAAAAA,200,AAAA,CCCCCC,;MMMMM;嗯MMMMMMMMMMMMMN,AAAAAAAAAAA,53, AAAA,CCCCCC,AAAA AAAAAA AAAAAAAAAAA AAAAAAAAAAA AAAAAAAAAAA NODATACODE,:食物餐

请告诉我如何用 Python 重写以下代码来执行此任务。 我尝试了以下代码,但它不起作用:

with open('Schedule.txt', 'w') as fw:
   for line in lines:
   if line.strip('\n') = 'NODATACODE':
                      fw.write(line)

我收到的错误消息如下:

     Cell In[1], line 5
     if line.strip('\n') = 'NODATACODE':
        ^
     SyntaxError: cannot assign to function call here. Maybe you meant '==' instead of 
       '='?

原始输出

所需输出

提前谢谢您。

python text text-files python-3.11
1个回答
0
投票

这应该可以实现你想要的;请注意,我们测试行 begins 是否以 'NODATACODE' 开头,而不是 等于 它。我们使用一个标志,以便下一行也将被写入输出文件:

with open('input_file.txt') as f_in:
    with open('output_file.txt', 'w') as f_out:
        write_flag = False
        for line in f_in.readlines():
            if line.startswith('NODATACODE'):
                write_flag = True
            if write_flag:
                f_out.write(line)
© www.soinside.com 2019 - 2024. All rights reserved.