前言:

前几天学姐拿来一堆文件名乱码的pdf让帮忙整理一下,按论文标题命名

一看竟然一共250多个文件,还在不同的文件夹中,哇,想想就头疼,这时候就要发挥程序媛的智慧了,正好最近在用python写毕设,就想能不能用python改标题,嗳,原来有专门的处理的库pdfminer。好了闲话少说,开始干活

安装pdfminer库

在命令行输入

pip install pdfminer3k

如果不成功会提示少了什么库,就按照pip install xx(库名称)的方式安装就好,最后再在命令行输入pip install pdfminer3k

把文件从文件夹中取出来:

这个很简单,直接贴代码了

import os

import shutil

import importlib

import sys

def load_file():

walk = os.walk('./12')

i=1;

for root, dirs,files in walk:

for name in files:

shutil.move(os.path.join(root,name), "./myset/"+i+".pdf)

i+=1

load_file()

其中os.walk() 方法用于通过在目录树中游走输出在目录中的文件名,向上或者向下,是一个简单易用的文件、目录遍历器

walk()方法语法格式如下:

os.walk(top[, topdown=True[, οnerrοr=None[, followlinks=False]]])

参数

top -- 遍历的目录的地址, 返回的是一个三元组(root,dirs,files)。

root 所指的是当前正在遍历的这个文件夹的本身的地址

dirs 是一个 list ,内容是该文件夹中所有的目录的名字(不包括子目录)

files 同样是 list , 内容是该文件夹中所有的文件(不包括子目录)

topdown--可选,为 True,先遍历 top 目录,否则优先遍历 top 的子目录(默认为开启)。如果 topdown 参数为 True,walk 会遍历top文件夹,与top 文件夹中每一个子目录。

onerror-- 可选, 需要一个 callable 对象,当 walk 需要异常时,会调用。

followlinks -- 可选, 如果为 True,则会遍历目录下的快捷方式(linux 下是 symbolic link)实际所指的目录(默认关闭)。

详情见http://www.runoob.com/python/os-walk.html

现在的数据都在一个文件夹了

从pdf中读标题

1.分析PDF内容

标题在第二行和第三行一般,除极少数的标题只有一行。

2.读pdf获取标题

from urllib.request import urlopen

from pdfminer.pdfinterp import PDFResourceManager,process_pdf

from pdfminer.converter import TextConverter

from pdfminer.layout import LAParams

from io import StringIO

from io import open

def readPDF(pdffile):

rsrcmgr=PDFResourceManager()

retstr=StringIO()

laparams=LAParams()

device=TextConverter(rsrcmgr,retstr,laparams=laparams)

process_pdf(rsrcmgr,device,pdffile)

device.close()

content=retstr.getvalue()

retstr.close()

strs = str(content).split("\n")

title = strs[2]+strs[3]

return title

pdffile=open('./mysets/3.pdf',"rb")

title =readPDF(pdffile)

print(title)//

pdffile.close()

得到文件名

3.更改文件名:

def rename():

walk = os.walk('./mysets')

i = 0;

for root, dirs, files in walk:

for name in files:

pdffile=open(os.path.join(root, name),"rb")

title =readPDF(pdffile)

print(title)//

os.rename(os.path.join(root, name), os.path.join(root, title+".pdf”))

i += 1

好了这就将文件名给概率

虽然不能百分百处理好,有些特殊的情况还没有考虑好,但是已经减少了很多工作量拉。

以后要多尝试多做

python读取pdf的标题_【python】使用python pdfminer3k读取pdf相关推荐

  1. python怎么读取pdf为文本_轻松用Python批量提取PDF文本内容,这个小技巧告诉你!...

    轻松用Python批量提取PDF文本内容,这个小技巧告诉你!-1.jpg (22.73 KB, 下载次数: 0) 2018-9-7 08:33 上传 本文为你展示,如何用Python把许多PDF文件的 ...

  2. python 批量读取xlsx并合并_如何用Python快速导入多个excel文件并合并文件数据

    日常工作中,每个月都会遇到那么个固定的工作,将业务方同事整理的数据导入GP数据库中的某张表中:听起来是很简单的活呢! 但每次业务MM总会发来一个文件夹,里面有三四十个Excel文件(.xlsx格式,且 ...

  3. 引发了未经处理的异常:读取访问权限冲突_从零开始学Python:23课-文件读写和异常处理

    一下子想起来,我的Python100天教程没更新了,赶紧补上~ 这期就还接着前面的讲哈.另外就是想跟伙伴们了解下,就是跟我要到Python视频教程的伙伴,你们学的怎么样了,可以给我个反馈哈! 实际开发 ...

  4. python提取pdf文件内容_如何用Python批量提取PDF文本内容?

    本文为你展示,如何用Python把许多PDF文件的文本内容批量提取出来,并且整理存储到数据框中,以便于后续的数据分析. 问题 最近,读者们在后台的留言,愈发五花八门了. 写了几篇关于自然语言处理的文章 ...

  5. python读取大文件性能_强悍的Python读取大文件的解决方案

    Python 环境下文件的读取问题,请参见拙文 Python基础之文件读取的讲解 这是一道著名的 Python 面试题,考察的问题是,Python 读取大文件和一般规模的文件时的区别,也即哪些接口不适 ...

  6. python pdf删除图片_如何使用Python从PDF中删除文本

    我正在创建一个python脚本来编辑PDF文本. 我有这个Python代码,它允许我将文本添加到PDF文件的特定位置. import PyPDF2 import io from reportlab.p ...

  7. python能写什么脚本_你用 Python 写过哪些牛逼的程序/脚本?

    原标题:你用 Python 写过哪些牛逼的程序/脚本? [导读]:有网友在 Quora 上提问,「你用 Python 写过最牛逼的程序/脚本是什么?」.本文摘编了 3 个国外程序员的多个小项目,含代码 ...

  8. python天气查询运行过程_菜鸟玩Python|制作天气查询软件

    原标题:菜鸟玩Python|制作天气查询软件 开发环境 Python3 PyQt5 requests 准备工作 首先要获取不同城市对应的天气代码,可以从 https://www.heweather.c ...

  9. python自动化办公教程书籍_盘点使用Python进行自动化办公所需要的知识点

    知乎上有人提问:用python进行办公自动化都需要学习什么知识呢? 这可能是很多非IT职场人士面临的困惑,想把python用到工作中,却不知如何下手?python在自动化办公领域越来越受欢迎,批量处理 ...

最新文章

  1. 收藏 | CNN的一些可视化方法!
  2. java8异步_Java8新特性之:CompletableFuture
  3. codevs 2879 堆的判断
  4. Coursera在线学习---第十节.大规模机器学习(Large Scale Machine Learning)
  5. IBatis.net动态SQL语句
  6. 搜索引擎排名不友好的五个地点-SEO
  7. 高斯噪声调频matlab,基于MATLAB的2ASK调制与解调设计
  8. AngularJs学习笔记0——前言
  9. pta 是否完全二叉搜索树_23.二叉搜索树的后序遍历序列
  10. 阿里巴巴2020春招暑期实习笔试题
  11. Not enough information to list image symbols. Not enough information to list load addresses in ...
  12. mapbox-gl开发:deck.gl轨迹图效果
  13. 满二叉树 / 真二叉树 / 完全二叉树 ~
  14. 产品介绍 | 51LA短链分发平台
  15. 微信版梦幻西游手游连接不上服务器,梦幻西游手游
  16. 通过新外设CLB猜测TI C2000的发展方向
  17. 一个简单的基于形态学处理的报纸图像版面分割算法matlab仿真
  18. BOM123编辑器(123BOM编辑器)是硬件工程师整理BOM的好帮手,3分钟完成一份BOM集成整理,很适合自己创业的工程师
  19. 简网APP工场-服务介绍
  20. 伺服驱动器的工作原理是什么?

热门文章

  1. 设置IE首页与新建页面内容
  2. 数字校园APP——软件需求规格说明书
  3. 机器人辅助的符文天赋_LOLS7辅助机器人 机器人辅助天赋加点攻略
  4. 【181222】VC++ StuManage学生档案管理系统Access版源代码
  5. 拉格朗日启发式算法matlab,基于时间满意的最大覆盖选址问题
  6. Spark SQL编程DataFrame 创建_大数据培训
  7. atom与mysql,Atom
  8. springboot整合dubbo之多注册中心配置(服务提供者和消费者均配置 2.7.0版本)
  9. db.auth(‘admin‘,‘123456‘) Error: Authentication failed. 0
  10. jsp标签自定义属性取值问题