python - 使用 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()
谢谢
解决方案
您需要删除prev_line=False
before 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)
推荐阅读
- java - Java 我可以根据输入在类中设置变量吗
- swift - 迁移到 Swift 包管理器后访问包中的文件
- snowflake-cloud-data-platform - 雪花:动态数据屏蔽对查询结果的影响
- flutter - 在getx中将构造函数值从视图传递到控制器
- python - Django:更改表单中附加在 URL 中的默认参数
- excel - Excel 到 Word VBA - 每 x 行导出带有徽标的数据
- java - 在对话框中按下确定按钮后更改屏幕
- assembly - 如何在数据路径中获取注册地址(例如:($s2))?
- python - 在 cogs 目录的子文件夹中加载命令
- python - 在 kivy 中将画布作为图像保存到 filechooserview 中指定的某个文件路径