如何在不附加先前输入的情况下合并和关闭 PyPDF

我在合并多个 pdf 时遇到问题,因为我必须在文件夹之间循环并合并两个匹配的文件。这很容易完成,但是当我:


input1.append(file1)

input2.append(file2)

PDFFileMerger.write(output)

合并发生,但下一次迭代包括之前的输入等,使最后一个迭代成为一个巨大的 pdf 文件,而出现的事件彼此重复


for i in range(nPdfs):

    abr = onlypdf[i]

    abr = abr.replace('.pdf', '')

    for j in range(nXl):

        pdf_file = open('SEPTIEMBRE DE 2020/' + onlyfiles[j], 'rb')

        read_pdf = pdf.PdfFileReader(pdf_file)

        number_of_pages = read_pdf.getNumPages()

        page = read_pdf.getPage(0)

        page_content = page.extractText()

        if abr in page_content:

            file1 = onlypdf[i]

            file2 = onlyfiles[j]

    print(file1)

    print(file2)

    print(file1+' esta en '+file2)

    input1 = open('Combinadora/documentos/'+file1, 'rb')

    input2 = open('SEPTIEMBRE DE 2020/'+file2, 'rb')

    merger.append(input1)

    merger.append(input2)

    input1.close()

    input2.close()

    print('archivo creado')

    output = open(abr+'-'+file2, 'wb')

    merger.write(output)

    output.close()

这是我的代码,我是否将其拧入循环中?


MM们
浏览 42回答 1
1回答

Qyouu

PyPDF 是一个很棒的库,但我也遇到了一些内存问题。因此,通常我使用单独的进程来创建合并(在作业后终止),或者您可以删除 (del) 实际对象。请记住,即使您找到解决此问题的棘手方法,也可能会发生内存泄漏,因此我强烈建议创建和终止进程。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python