[求问]使用python pdfminer3k读取pdf,并将pdf按论文标题命名

如何将下载下来的文件名乱码的pdf按论文标题命名,在windows系统下,利用Python3.6,使用pdfminer库来实现。

按照https://www.jianshu.com/p/742a28decc58中的程序来实现,按照原作者的程序,能实现步骤2(读pdf获取标题),但执行步骤3(更改文件名)后,文件名未被更改,也没有报错,请问是什么原因?

程序如下:

#encoding:utf-8

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 #StringIO就是在内存中读写str

from io import open

import os

from os import walk

#步骤2(读pdf获取标题)

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")

#选择第 8,9,10行作为标题,但这种方法不一定适合别的pdf文档

    title = strs[8]+strs[9]+strs[10]

    return title

pdffile=open('D:\\pdfjiexi\\3.pdf',"rb")

title =readPDF(pdffile)

print(title)

pdffile.close()

#步骤3(更改文件名)

def rename():

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

    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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • title: "My Jumble of Computer Vision"category: "Computer ...
    joshua_1988阅读 3,271评论 0 3
  • 可以看我的博客 lmwen.top 或者订阅我的公众号 简介因为公司项目的原因,最近花了点时间去研究NLP自然...
    ayuLiao阅读 3,664评论 0 3
  • Python 面向对象Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对...
    顺毛阅读 4,238评论 4 16
  • 闭包: 什么是闭包? 函数嵌套函数,内部函数可以引用外部函数的参数和变量,参数和变量不会被垃圾机构回收; 用闭包做...
    dream_seeker阅读 302评论 0 0
  • 开说之前,我想问候一下编辑家里十八代祖宗。你丫脑子有病吧?给罗子军开头那么大的气场,最后他老公只是个项目经理,我扒...
    姜宁_45d4阅读 197评论 0 2