【问题标题】:Positional argument required PyPDF2需要位置参数 PyPDF2
【发布时间】:2020-02-16 17:39:48
【问题描述】:

我正在尝试在将 PDF 文件转换为 Txt 之前按页面拆分它。 我正在使用此代码对其进行拆分,但得到了与位置参数相关的错误。我认为它应该是列表的第一页,但我找不到将它传递给代码本身的方法。 这是代码:

from PyPDF2 import PdfFileReader, PdfFileWriter

pdf_document = "5Dec2019.pdf"
pdf = PdfFileReader(pdf_document)

for page in range(pdf.getNumPages()):
    pdf_writer = PdfFileWriter
    current_page = pdf.getPage(page)
    pdf_writer.addPage(current_page)

    outputFilename = "example-page-{}.pdf".format(page + 1)
    with open(outputFilename, "rb") as out:
        pdf_writer.write(out)

        print("created", outputFilename)

这是错误:

TypeError                                 Traceback (most recent call last)
<ipython-input-28-ab33e5847c35> in <module>
      7     pdf_writer = PdfFileWriter
      8     current_page = pdf.getPage(page)
----> 9     pdf_writer.addPage(current_page)
     10 
     11     outputFilename = "example-page-{}.pdf".format(page + 1)

TypeError: addPage() missing 1 required positional argument: 'page'

【问题讨论】:

    标签: python-3.x parameter-passing pypdf2


    【解决方案1】:

    问题是您将pdf_writer 分配给PdfFileWriter 类,而不是该类的实例

    补救方法很简单:

        pdf_writer = PyPDF2.PdfFileWriter()
        # you need these parens/brackets ^^
    

    另外:当您打开输出文件时,您使用的是'rb',而不是应该使用的:'wb'

    【讨论】:

    • 成功了,抱歉这个愚蠢的问题。我现在对代码有另一个问题,它不会创建 outputFilename 变量。它给了我这种类型的错误 FileNotFoundError: [Errno 2] No such file or directory: 'example-page-1.pdf'
    • 啊,在你的 with 语句中将 'rb' 更改为 'wb'
    猜你喜欢
    • 2022-12-03
    • 2011-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-18
    • 1970-01-01
    • 2017-04-04
    相关资源
    最近更新 更多