从tex中提取某些段落

2024-09-25 06:29:54 发布

您现在位置:Python中文网/ 问答频道 /正文

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


结果:在校正分析中,每小时PAC计数加倍与 房颤风险显著增加(危险比,1.17[95%CI,1.13-1.22]
局限性:本研究没有建立PACs和AF之间的因果关系。
结论:在经过验证的房颤风险算法中加入PAC计数可以提供 出色的房颤风险识别,显著改善风险重新分类。 PAC改性是否具有前瞻性还需进一步研究 降低房颤风险。
主要资金来源:美国心脏协会、约瑟夫溺水基金会和 国立卫生研究院。在


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


Tags: 文件文件夹cipacs计数pac风险af
3条回答

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

那么对于每个文件

  1. 遍历所有行
  2. 查看当前行是否以结论开头:
  3. 在那一行上做一个子串,得到单词结论之后的所有内容:

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

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: '头,然后扫描之后的数据,在下一个标题之后停止,该标题将始终是您指定的大写单词。在

我不擅长正则表达式,也不太确定这是否是最好的方法,但它确实有效:)

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]

相关问题 更多 >