首页 > 解决方案 > 使用 Python 在特定单词后删除多行

问题描述

我想使用 Python 删除 .txt 文件中文章的最后一部分(即参考部分)。“整个部分”是指“参考”一词之后的所有内容:

参考资料部分

有没有办法使用正则表达式或任何其他方法删除“参考”一词后的所有内容?

我尝试了以下代码,但是,它只删除了“参考”一词之后的第一行:

input_file = open("remove.txt", 'r', encoding= 'utf-8')
prev_line = False
lines =[]
for line in input_file:
    if not prev_line:
        lines.append(line)
    prev_line=False
    if "References" in line:
       prev_line=True
input_file.close()

input_file = open("input.txt", 'w')
for line in lines:
     input_file.write(line)
input_file.close()

谢谢

标签: pythonreplace

解决方案


您需要删除prev_line=Falsebefore if "References" in line:,因为它会将prev_line值恢复为原始值False,并且将对包含但紧接在其if not prev_line: lines.append(line)下方的行下方的所有行执行。References

所以,你可以使用

with open("remove.txt", 'r', encoding= 'utf-8') as input_file:
    prev_line = False
    lines = []
    for line in input_file:
        if not prev_line:
            lines.append(line)
        if "References" in line:
           prev_line=True

with open("input.txt", 'w') as input_file:
    for line in lines:
        input_file.write(line)

推荐阅读