美文网首页
Python 批量 提取PDF文献标题来重命名PDF文件名

Python 批量 提取PDF文献标题来重命名PDF文件名

作者: 火卫控 | 来源:发表于2023-08-23 16:48 被阅读0次

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

相关文章

网友评论

      本文标题:Python 批量 提取PDF文献标题来重命名PDF文件名

      本文链接:https://www.haomeiwen.com/subject/vcipmdtx.html