感谢您的帮助。
我有一个由许多书籍组成的大型文本文档。所有的书都有“运行标题”,我注意到它们出现在页码行的前面。页码为1到4位数字。页码在新行上。
[我想遍历该文件,并让Python在到达以页码开头的行时删除以前的迭代。
谢谢
Bennett
我的示例代码是:
import re
f=open("corpus.txt", "r+", "a")
for line in f:
line = line.rstrip()
if re.search('^[0-9]*?', line):
#delete previous line
我写了一个凌乱的解决方案,但显然有效。如果这是问题delete the last iteration
输入:
adjiowa,adwadjiowa,adw
adjiowa,adw
adiwpdjqodij
123
ajdiow
ajdiowd
输出:
adjiowa,adwadjiowa,adw
adjiowa,adw
DELETED LINE
123
ajdiow
ajdiowd
import re
with open("corpus.txt", "r+") as f, open("output.txt", "w") as output:
last_line = f.readline().rstrip()
for line in f:
curr_line = line.rstrip()
if re.search('^[0-9]*', curr_line).group() != "":
print("found")
output.write("DELETED LINE" + '\n')
last_line = curr_line
else:
output.write(last_line + '\n')
last_line = curr_line
output.write(curr_line)
您还可以将所有行附加到列表中,然后在遇到页码时修剪最后一项。然后将它们逐行写入新文件。
希望这会有所帮助。