Python解决读取从.pdf文件中读取内容,一种免费的方法将.pdf文件转换为.docx文件

此文仅用来记录自己解决问题的过程!!!

一般有Python有直接读取.pdf文件的库来解决该问题,但是自己尝试了很久,没有从相关库中导出自己想要的内容。想到其原因也不晓得对不对,首先.pdf文件是公认的比较稳定的文件格式(相对于.doc和.docx文件),一般都不能对其进行修改,所以最好用功能比较强大的转换器转换为.docx文件后对其内容进行提取。

首先,推荐一款免费的转换软件Solid Converter V8(链接:https://pan.baidu.com/s/1YPc5PD08sMzU8OXd7MGtXA   提取码:8y59 ), 破解需要注册码,百度就有,下面贴出来:

           1名称:任意
           电子邮件:china@163.com
           机构名称:office
           解锁码:FXHF

           2 名称 任意
           机构名称 任意
           电子邮箱: info@x-berry.com
           解锁码: MWHS

然后,需要安装Python读取docx文件相关的库,这里切记是python-docx库,而不是其他的,用impot直接导入的时候这样导入import docx就可以。

最后,贴一个相关的代码,使用了正则表达式来提取有关内容:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# author:qinxaioyu  Time:2018/12/17

import docx
from docx import Document
import re    # 使用正则表达式进行内容提取
'''
解析docx文件,保存到txt文件中
'''

if __name__ == '__main__':
    path = 'E:\组合 1.docx'    # 需要读取的.docx文件
    res = 'E:\data.txt'        # 提取数据的存到.txt文件中
    document = Document(path)   #读取文件
    tables = document.tables   #找到docx中间中所有表格
    print(len(document.paragraphs))
    names = []
    max_length = 0
    for i in range(len(document.paragraphs)):
        a = re.findall(r'数据文件名\t:(.*?).lcd', document.paragraphs[i].text)   #正则提取内容
        if len(a) > 0:
            names.append(str(a[0]))
            if len(str(a[0])) > max_length:
                max_length = len(str(a[0]))
    with open(res,'w') as f:
        f.write('name' + ' '*100 + '保留时间' + ' '*10 + '面积' + '\n')
        j = 0
        for table in tables:     # 提取表格数据进行写入
            f.write(names[j] + ' '*((max_length - len(names[j]))*2 + 10) + str(table.cell(1,2).text) + ' '*10 +\
                        str(table.cell(1,3).text) + '\n')
            j += 1
    f.close()




 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值