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

下载多篇论文的时候,文件名总是一堆标号,每个打开重命名很烦,安装一个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

你可能感兴趣的:(批量获取文件夹下pdf标题并重命名)