Python批量提取PDF文件中的文本

首先需要执行命令pip install pdfminer3k来安装处理PDF文件的扩展库。

import os

import sys

import time

pdfs = (pdfs for pdfs in os.listdir('.') if pdfs.endswith('.pdf'))

for pdf1 in pdfs:

pdf = pdf1.replace(' ', '_').replace('-', '_').replace('&', '_')

os.rename(pdf1, pdf)

print('='*30)

print(pdf)

txt = pdf[:-4] + '.txt'

exe = '"' + sys.executable + '" "'

pdf2txt = os.path.dirname(sys.executable)

pdf2txt = pdf2txt + '\\scripts\\pdf2txt.py" -o '

try:

#调用命令行工具pdf2txt.py进行转换

#如果pdf加密过可以改写下面的代码

#在-o前面使用-P来指定密码

cmd = exe + pdf2txt + txt + ' ' + pdf

os.popen(cmd)

#转换需要一定时间,一般小文件2秒钟足够了

time.sleep(2)

#输出转换后的文本,前200个字符

with open(txt, encoding='utf8') as fp:

print(fp.read(200))

except:

pass

原文发布于微信公众号 - Python小屋(Python_xiaowu)

原文发表时间:2016-11-17

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏PHP在线

拒绝重复造轮子,用composer搞自己的框架(2)

久负盛名的 CodeIgniter 框架是很多人的 PHP 开发入门框架,同样也是我开始学习如何从头构建一个网站的框架。在 CI中我学到了很多,其中对 MVC ...

38790
来自专栏林德熙的博客

git subtree pull 错误 Working tree has modifications

git subtree 是不错的东西,用于 git 管理子项目。 本文记录我遇到问题和翻译网上的答案。

15310
来自专栏栗霖积跬步之旅

git中的merge与rebase

29460
来自专栏BY的专栏

终端显示树状文件结构

39680
来自专栏架构师之路

30秒懂SQL中的join(2幅图+30秒)

废话不多说,直接上图秒懂。 t1表的结构与数据如下: ? t2表的结构与数据如下: ? inner join select * from t1 inner j...

30570
来自专栏ImportSource

PATH 和 CLASSPATH 的区别

java中的path和classpath是很多java初入者比较困惑的两个变量。本文简单列举二者区别。 PATH and CLASSPATH的区别 1)第一个主...

942120
来自专栏维C果糖

史上最简单的 MySQL 教程(七)「中文数据问题」

由于计算机仅识别二进制数据,而且人类则更倾向于识别字符(符号),因此就需要一个二进制与字符的对应关系,也就是字符集。

38450
来自专栏Python小屋

Python程序编译与反编译

众所周知,Python是纯粹的自由软件, 源代码和解释器CPython遵循 GPL(GNU General Public License)协议。那么很自然会有人...

71660
来自专栏orientlu

python 模块与包

每个文件夹对应一个包,包里面可以包含多个包,对应的每个 .py 文件是一个具体模块。 封装成包,在文件上组织好代码后,确保每个目录都要一个 __init__....

15630
来自专栏大内老A

学习ASP.NET Core, 怎能不了解请求处理管道[5]: 中间件注册可以除了可以使用Startup之外,还可以选择StartupFilter

中间件的注册除了可以借助Startup对象(DelegateStartup或者ConventionBasedStartup)来完成之外,也可以利用另一个叫做St...

34870

扫码关注云+社区

领取腾讯云代金券