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