Python 批量修改PDF文件名

参加CyberC会议,会议的论文集文件名全是字母+数字,找自己想看的很难受,就用python改了下。

环境说明:

(1)python3.6

(2)PyPDF2库(直接pip安装就行)

(3)文件的结构说明,如下图:

Python 批量修改PDF文件名_第1张图片

代码如下:

import os
from PyPDF2 import PdfFileWriter, PdfFileReader
from shutil import copy2

src_dir = 'F:\CyberC文献\CyberC2018'  # 源文件目录地址
des_dir = 'F:\CyberC文献\CyberC2018-txt'  # 新文件目录地址
num = 0

def list_all_files(rootdir):
    import os
    _files = []
    list = os.listdir(rootdir) #列出文件夹下所有的目录与文件
    for i in range(0,len(list)):
           path = os.path.join(rootdir,list[i])
           if os.path.isdir(path):
              _files.extend(list_all_files(path))
           if os.path.isfile(path):
              _files.append(path)
    return _files

if not os.path.exists(des_dir):  # 如果没有目标文件夹,新建一个目标文件夹进行存储
    os.makedirs(des_dir)

if os.path.exists(src_dir):
    files = list_all_files(src_dir)  # 获取源文件的目录地址
    for file in files:  # 对于目录下的每一个文件
        pdf_reader = PdfFileReader(open(file, 'rb'))  # 打开并建立一个PDF文件对象
        paper_title = pdf_reader.getDocumentInfo().title  # 获取PDF标题
        print("num : %s" % num, paper_title)  # 显示处理到第几个文件
        num += 1
        paper_title = str(paper_title)  # 标题字符化

        if paper_title.find('/') != -1:  # 对于'/'无法写入文件名的情况,将其用'_'代替
            new_paper_title = paper_title.replace('/', '_')
            paper_title = new_paper_title
            copy2(file, os.path.join(des_dir, paper_title) + '.pdf')
        else:
            copy2(file, os.path.join(des_dir, paper_title) + '.pdf')

else:
    print("该路径下不存在所查找的目录!")

 

你可能感兴趣的:(python,pdf)