Python 如何合并和关闭PyPDF而不附加以前的输入

Python 如何合并和关闭PyPDF而不附加以前的输入,python,loops,for-loop,pypdf,Python,Loops,For Loop,Pypdf,我在合并多个pdf文件时遇到了一个问题,因为我必须在文件夹之间循环并合并两个匹配的文件。 这很容易做到,但当我: input1.append(file1) input2.append(file2) PDFFileMerger.write(output) 合并会发生,但下一次迭代会包含以前的输入,以此类推,使最后一次合并成为一个巨大的pdf文件,以避免重复出现 for i in range(nPdfs): abr = onlypdf[i] abr = abr.replace('.

我在合并多个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()

这是我的代码,我是在循环中运行吗?

PyPDF是一个很棒的库,但我的内存也有一些问题。因此,通常我使用单独的进程创建合并(在作业之后终止),或者您可以删除(删除)实际对象。请记住,即使您找到一种棘手的方法来解决这个问题,内存泄漏也可能发生,因此我强烈建议创建和终止进程