Python:从long txt中提取章节(或删除所有其他章节)

时间:2016-02-15 08:52:28

标签: python text

我的问题是: 我有几个很长的txt文件,其中有许多章节,我想提取一个。这些章节中的文字在文件之间有所不同。

应使用章节的标题和下一章的标题进行识别,这些标题对于所有文件都是相同的。这些标识标题不止一次出现在文件中,但我只想使用它们的第一次出现...

因此逻辑就像:

删除文字;识别标题(第一次出现)"开始&#34 ;;保留标题和文字;识别标题(第一次出现)"结束&#34 ;;删除文字

目标是一个程序,它将自动打开所有文件并以所述方式编辑它们。

提前致谢!

1 个答案:

答案 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()

我从最后读取文件,搜索我的“开始单词”,截断文本的其余部分并打破循环。然后写入文件,再次打开并从末尾读取 - >最终文本处于“正确”的方向。