首页 > 解决方案 > 如何使用 PyPDF2 复制和更改 PDF 文件的名称

问题描述

我有一组 pdf 文件,在文本后有一个字符串,例如:

example1.pdf
    This is your name
    John Doe

所以我想更改我所有 PDF 的名称,例如,它将出现而不是 example1.pdf 出现 John Doe.pdf

我做了以下程序:

def main():
    pdfFiles=[]
    for filename in os.listdir('C:\\programs'):
        if filename.endswith('.pdf'):
            pdfFiles.append(filename)
    os.chdir('C:\\programs')
    regex="This is your name"
    lista=[]
    pdfWriter=PyPDF2.PdfFileWriter()
    for filename in pdfFiles:
        pdfFileobj=open(filename,"rb")
        pdfReader=PyPDF2.PdfFileReader(pdfFileobj)
        page=pdfReader.getPage(0)
        text=page.extractText()
        before_keyword,keyword,after_keyword=text.partition(regex)
        list=after_keyword
        a=list.split("\n")
        pdfWriter.addPage(page)
        pdfoutput=open(a[3],"wb")
        pdfWriter.write(pdfoutput)
        pdfoutput.close()

我已经管理a[3]包含人名,但是当我运行我的程序时,我收到以下错误:

return self.flattenedPages[pageNumber]

IndexError: list index out of range

我怎样才能解决这个问题?

标签: pythonpdf

解决方案


推荐阅读