2017-12-29 68 views
0

私は、いくつかの奇妙な出力ファイルが、pandasとPyPDF2を使用していくつかのPDFファイルをマージしようとしています。ファイルリストからのPyPDF2マージ問題

私は単一のページを持っています。PDF(証明書)すべてに共通する2ページのドキュメントとマージする必要があります。そして、起源ファイルに名前を付けられた人のために出力ファイルに名前を付けます。私はそれを自動化したいという妥当な数があるので

私はPythonに堪能ではありませんが、私の考え方はうんざりですが、なぜ出力ファイルのいくつかが3500ページ以上のものがあるのか​​分かりません。いくつか、なぜ誰も正しいわけではありません。

一度に1つの数値を実行しますが、すべてのレコードをループするときは実行しません。 。 私は実際に私が見ることができない何かを明らかにしていると私はいくつかの助けを歓迎します。

私のコードは以下の通りです:事前に

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) 

感謝。 J

答えて

0

大丈夫です。ファイルを閉じていないことは明らかです。

from PyPDF2 import PdfFileReader, PdfFileMerger 
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 

明白な欠陥を指摘して私の父への帽子の先端。

私はこれらすべてを手動で行うことを楽しみにしていませんでした。

J

関連する問題