PyPDF2合并文件列表中的问题

时间:2017-12-29 07:22:22

标签: python pandas pdf pdf-generation pypdf2

我尝试使用pandas和PyPDF2合并几个PDF文件时得到一些奇怪的输出文件。

我有一个页面PDF(证书)我需要合并一个共同的两页文档。然后为源文件中指定的人命名结果输出文件。因为有一个合理的数字我想自动化它

我不熟悉python,我有点磕磕绊绊但是我迷失了为什么有些输出文件有> 3500页,而其他只有少数几个,为什么没有一个是正确的。

一次运行一个号码,但是当我尝试循环所有记录时不能 。 我真的很欢迎一些帮助,我假设它显而易见,我无法看到。

我的代码如下:

from PyPDF2 import PdfFileReader, PdfFileMerger
import pandas as pd

def create_pdf(x):
    file2 = outs[x]
    file1 = certs[x]
    input1 = open(path + file1, "rb")
    input2 = open(path + 'insert.pdf', "rb")

    output = open(path2 + file2, "wb")
    merger.append(fileobj=input1, pages=(0, 1), import_bookmarks=False)
    merger.append(input2)
    merger.write(output)
    output.close()
    return

df = pd.read_csv('Affiliate Data.csv', encoding='latin1', na_values=['nan'], keep_default_na=False)

path = 'D:\\input_file Location\\'
path2 = 'D:\\Output_file_Location\\'
merger = PdfFileMerger()
pdf_files = []
certs = df['infile'].tolist()
outs= df['outfile'].tolist()
x=0

while x < 605 :
    create_pdf(x)

提前致谢。 Ĵ

1 个答案:

答案 0 :(得分:0)

好吧很明显我没有关闭文件。

from PyPDF2 import PdfFileReader, PdfFileMerger

将pandas导入为pd

def create_pdf(x):
    file2 = outs[x]
    file1 = certs[x]
    input1 = open(path + file1, "rb")
    input2 = open(path + 'insert.pdf', "rb")

    output = open(path2 + file2, "wb")
    merger.append(fileobj=input1, pages=(0, 1), import_bookmarks=False)
    merger.append(input2)
    merger.write(output)
    output.close()
    # *****Solution close the input files******
    input1.close()
    input2.close()

    return

df = pd.read_csv('Affiliate Data.csv', encoding='latin1', na_values=['nan'], keep_default_na=False)

path = 'D:\\input_file Location\\'
path2 = 'D:\\Output_file_Location\\'
merger = PdfFileMerger()
pdf_files = []
certs = df['infile'].tolist()
outs= df['outfile'].tolist()
x=0

while x < 605 :
    create_pdf(x)
    # *****Solution close and reopen the file merger******
    merger.close()
    merger = PdfFileMerger()

    x=x+1

给我父亲指出明显的缺陷。

我并不期待手动完成所有这些操作。

Ĵ