我的问题是: 我有几个很长的txt文件,其中有许多章节,我想提取一个。这些章节中的文字在文件之间有所不同。
应使用章节的标题和下一章的标题进行识别,这些标题对于所有文件都是相同的。这些标识标题不止一次出现在文件中,但我只想使用它们的第一次出现...
因此逻辑就像:
删除文字;识别标题(第一次出现)"开始&#34 ;;保留标题和文字;识别标题(第一次出现)"结束&#34 ;;删除文字
目标是一个程序,它将自动打开所有文件并以所述方式编辑它们。
提前致谢!
答案 0 :(得分:0)
我找到了一个(某种程度上很长)的答案,它只删除了文本的第一部分(这意味着章节没有被提取,但至少它位于顶部,这对我来说已经足够了)...也许某人会遇到同样的问题:
import os
for file in os.listdir('.'):
if file == "delete_first_part.py":
pass
elif os.path.isfile(file):
# open the file, delete all lines before "word to begin", write rest to file
f = open(file,"r+")
lines = reversed(f.readlines())
f.seek(0)
strings = ("Word to Begin")
for line in lines:
if any(s in line for s in strings):
f.write(line)
f.truncate()
print file
break
else:
f.write(line)
f.close()
f = open(file,"r+")
lines = reversed(f.readlines())
f.seek(0)
for line in lines:
f.write(line)
f.close()
我从最后读取文件,搜索我的“开始单词”,截断文本的其余部分并打破循环。然后写入文件,再次打开并从末尾读取 - >最终文本处于“正确”的方向。