1

我们从向我们提供 PDF 发行说明的供应商处获得双周软件版本。笔记中有很多不相关的东西,但最终我们需要手动将这些笔记中的信息复制/粘贴到 Confluence 页面中。

理想情况下,我希望能够编写一个 python 应用程序,以便能够从 PDF 中抓取某些部分。结构大致如下(粗体部分是我要提取的部分):

  1. 介绍
  2. 新功能
    2.1。新功能 1
    说明
    2.2新功能 2
    说明

    .
    .
    2.x)新功能 X 说明
  3. 带有缺陷描述的缺陷修复
    描述

在这种情况下,文档的其余部分无关紧要

我已经设法让它导入文件并提取(全部)文本,但我真的不知道如何只提取第 2 节的标题,然后对于第 3 节,只取表格并用熊猫重新格式化. 关于如何解决这个问题的任何建议?

import fitz

filename = '~\releasenotes.pdf'

doc = fitz.open(filename)
print (doc) #  Just to see what comes out

(现在我下一步该怎么做?)

4

1 回答 1

0

一个简单的正则表达式(正则表达式)应该在这里解决问题。我正在对文本从您的 pdf 阅读中出来时的外观做出一些重大假设 - 我已经从您的帖子中复制了文本,并根据您的问题将其称为“doc”:)

import re #regular expression library

doc = '''
Introduction
New Features
2.1. New Feature 1
description
2.2 New Feature 2
description
.
.
.
2.x) New Feature X description
'''

ds_features = pd.Series(re.findall('2.[1-9].*\n', doc))

让我解压缩最后一行: re.findall将在文档中生成与搜索字符串匹配的项目列表, '2.[1-9].*\n'将查找 a 的所有实例,2.后跟任意数字 from [1-9],后跟任意数量的字符.*,直到达到换行符\n

希望这符合要求?

于 2020-09-01T12:23:32.110 回答