从文本中提取某段

时间:2014-03-19 18:54:14

标签: python directory extract

我是python的新手,我有一个问题。我有几个文本文件,我想提取每个文件的结论部分 文本文件如下所示:


结果:在调整后的分析中,每小时PAC计数加倍与之相关 AF风险显着增加(风险比,1.17 [95%CI,1.13至1.22]
限制:本研究未建立PAC与AF之间的因果关系。
结论:在经过验证的AF风险算法中增加了PAC计数 优越的AF风险歧视,并显着改善风险重新分类。 需要进一步研究以确定PAC修改是否可以前瞻性 降低AF风险。
初级资助来源:美国心脏协会,约瑟夫溺水基金会和 美国国立卫生研究院。


我在同一个文件夹中有多个文件,如何对该文件夹中的所有文件执行相同的操作?
提前谢谢!

3 个答案:

答案 0 :(得分:2)

我不擅长正则表达式,并且不太确定它是否是最佳方式,但它有效:)

import os
import re
path = 'path/to/your/files/'
for i in os.listdir(path):
    with open(path+i) as f:
        content = f.read()
        pattern = re.compile('CONCLUSION:\s*([\s\w.]*)\n[A-Z\s]*:')
        print pattern.findall(content)[0]

答案 1 :(得分:1)

您应该使用正则表达式来提取所需的数据:

import re
import os, os.path

PATH = 'path/to/your/files/'

conclusions = []
for file in os.listdir(path):
    with open(os.path.join(PATH, file)) as f:
        data = f.read()

    conclusion = re.search('CONCLUSION: (.*?)([A-Z]{2,})', data).group(1)
    conclusions.append(conclusion)

这将查找'CONCLUSION: '标题,然后在此之后扫描数据,在下一个标题之后停止,该标题将始终是您指定的大写字词。

答案 2 :(得分:0)

This将帮助您列出目录中的所有文件。

然后为每个文件

  1. 通过所有行迭代
  2. 查看当前行是否以结论开头:
  3. 在该行上执行子字符串以获取结论一词后的所有内容: