Python 批量 提取PDF文献标题给重命名PDF文件名
[图片上传失败...(image-5f59b8-1692866607719)][图片上传失败...(image-db16e4-1692866670029)]
图片
会将原PDF的名字直接换成提取的PDF中的title名
有些PDF title含有特殊字符,需要替换成空格,否则导致改名失败
可能有些PDF提取失败,导致更改文件名失败
代码如下:
import os
import PyPDF2
from PyPDF2 import PdfReader
homePath = os.path.dirname(os.path.abspath(__file__))
os.chdir(homePath)
path = './pdfs'.replace('\\', '/')
paper_name = os.listdir(path)
i = 1
for temp in paper_name:
print(temp)
# pdf_file = open(path + '/' + temp, 'rb')
# # pdf_reader = PdfFileReader(pdf_file) # 打开并建立一个PDF文件对象
# pdf_reader = PyPDF2.PdfReader(pdf_file)
reader = PdfReader(path + '/' + temp)
meta = reader.metadata
try:
paper_title = meta.title # 获取PDF标题
i = int(i)
paper_title = str(paper_title).replace(':', ' ')
paper_title = paper_title.replace('/', ' ')
paper_title = paper_title.replace('\\', ' ')
paper_title = paper_title.replace('*', ' ')
paper_title = paper_title.replace('?', ' ')
paper_title = paper_title.replace('"', ' ')
paper_title = paper_title.replace("'", ' ')
paper_title = paper_title.replace('<', ' ')
paper_title = paper_title.replace('>', ' ')
paper_title = paper_title.replace('|', ' ')
new_name = paper_title + '.pdf'
os.rename(path + '/' + temp, path + '/' + str(i) + '_' + new_name)
except PyPDF2._utils.PdfStreamError:
pass
except AttributeError:
pass
i = i + 1















网友评论