我有一个包含麦克白悲剧的文本文件。我想清理它,第一步是删除The Tragedie of Macbeth
行之前的所有内容,并将剩余部分存储在removed_intro_file
中。
我试过:
import re
filename, title = 'MacBeth.txt', 'The Tragedie of Macbeth'
with open(filename, 'r') as file:
removed_intro = file.read()
with open('removed_intro_file', 'w') as output:
removed = re.sub(title, '', removed_intro)
print(removed)
output.write(removed)
print语句不打印任何东西,所以它不匹配任何东西。我如何在几行上使用regex?应该使用指向要删除的行的开始和结束的指针吗?我也很高兴知道是否有更好的方法来解决这个问题,也许不使用regex。
2条答案
按热度按时间kmbjn2e31#
我们可以尝试逐行阅读文件,直到到达目标行。然后,将所有后续行读入输出文件。
这种方法可能比使用正则表达式方法更快、更有效。
nxowjjhe2#
您的正则表达式只将
title
替换为''
;你想删除标题和它前面的所有文本,所以搜索从字符串开头到标题的所有字符(包括换行符);这应该工作(我只测试了我写的一个样本文件):