批量获取文件夹下pdf标题并重命名

    技术2022-07-10  147

    下载多篇论文的时候,文件名总是一堆标号,每个打开重命名很烦,安装一个PyPDF2的包即可。

    pip install PyPDF2

    代码如下:

    import os from PyPDF2 import PdfFileReader from shutil import copy2 import re def rename_pdf(src_dir,des_dir): num = 0 if not os.path.exists(des_dir): # 如果没有目标文件夹,新建一个目标文件夹进行存储 os.makedirs(des_dir) if os.path.exists(src_dir): print("begin") dirs = os.listdir(src_dir) # 获取源文件的目录地址 for dirc in dirs: # 对于目录下的每一个文件 pdf_reader = PdfFileReader(open(os.path.join(src_dir, dirc), 'rb')) # 打开并建立一个PDF文件对象 paper_title = pdf_reader.getDocumentInfo().title # 获取PDF标题 print("num : %s" % num, paper_title) # 终端显示处理到第几个文件 num += 1 paper_title = str(paper_title) # 标题字符化 new_title=validateTitle(paper_title)#将标题中不能作为标题名的字符替换 copy2(os.path.join(src_dir, dirc), os.path.join(des_dir, new_title) + '.pdf') else: print("该路径下不存在所查找的目录!") def validateTitle(paper_title): ''' windows中的命名规则:文件名中允许使用空格,但不允许使用下列字符(英文输入法状态):< > / \ | : " * ?; 如监测到上述字符,需要对该字符进行替换 :return: ''' rstr = r"[\/\\\:\*\?\"\<\>\|]" # '/ \ : * ? " < > |' new_title = re.sub(rstr, " ", paper_title) # 替换为空格 return new_title if __name__ == '__main__': src_dir = 'C:\\Users\\liwenlong\\Desktop\\rename' # 源文件目录地址,这是windows的文件目录结构 des_dir = 'C:\\Users\\liwenlong\\Desktop\\retry' # 新文件目录地址 rename_pdf(src_dir,des_dir)

    参考链接:https://blog.csdn.net/weixin_41090039/article/details/82421312

    Processed: 0.009, SQL: 9