2014-10-11 1 views
0

매우 짧은 시간 동안 Python을 사용해 왔으며이 코드의 문제점을 파악할 수 없습니다. 내 코드에서 작동하는 예제를 찾을 수 없으므로 여기에서 묻습니다.tkinter 및 PyPDF2의 전역 변수를 사용하여 PDF 파일을 병합하는 방법

import sys 
import os 
from PyPDF2 import PdfFileReader, PdfFileMerger, PdfFileWriter 
from tkinter import * 

gui = Tk() 
gui.resizable(0,0) 

gui.geometry("800x600") 
gui.title("PDF Tools") 

l = StringVar() 
l2= StringVar() 
f = StringVar() 
e = StringVar() 

filenamelabel = Label(textvariable=l).place(x=400, y=0) 
filenamelabel2 = Label(textvariable=l2).place(x=400, y=25) 
exportfolderlabel = Label(textvariable=f).place(x=400, y=50) 

finalFileNameForm = Entry(gui).place(x=0, y=75) 

def openFileDialog(): 
    global fileName 
    fileName = filedialog.askopenfilename(initialdir = "/Users/", title="Pick a PDF   file.", filetypes=(("pdf files","*.pdf"),("all files","*.*"))) 
    l.set(fileName) 

def openFileDialog2(): 
    global fileName2 
    fileName2 = filedialog.askopenfilename(initialdir = "/Users/", title="Pick a second  PDF file.", filetypes=(("pdf files","*.pdf"),("all files","*.*"))) 
    l2.set(fileName2) 

def openExportFolderDialog(): 
    global exportFolder 
    exportFolder = filedialog.askdirectory(initialdir = "/Users/", title="Pick an export folder.") 
    f.set(exportFolder) 

def append_pdf(input, output): 
    [output.addPage(input.getPage(page_num)) for page_num in range(input.numPages)] 

def combinePdf(): 
    output = PdfFileWriter() 
    append_pdf(PdfFileReader(file(fileName, "rb")),output) 
    append_pdf(PdfFileReader(file(fileName2, "rb")),output) 

    output.write(file(finalFileName, exportFolder)) 

importpdf1 = Button(text="Import PDF", command=openFileDialog).place(x=0, y=0) 
importpdf2 = Button(text="Import PDF 2", command=openFileDialog2).place(x=0, y=25) 
setexport = Button(text="Set Export Folder", command=openExportFolderDialog).place(x=0, y=50) 
combinepdf = Button(text="Combine PDFs", command=combinePdf).place(x=0, y=100) 

gui.mainloop() 

내가 코드를 실행할 때 나는 점점 오전 오류가 파이썬 3.4.1를 사용

Exception in Tkinter callback Traceback (most recent call last): File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/tkinter/init.py", line 1487, in call return self.func(*args) File "/Users/chris/Desktop/gui.py", line 43, in combinePdf append_pdf(PdfFileReader(file(fileName, "rb")),output) NameError: name 'file' is not defined

이며, OS X 매버릭스

답변

0

이 오류 메시지는 문제가 무엇인지를 말하고있다. 이 경우

NameError: name 'file' is not defined 

당신은 file라는 이름의 함수를 호출되지만 정의 또는 find라는 함수를 가져 오지 않은.

대신 open으로 전화하셨습니까? 예 :

append_pdf(PdfFileReader(open(fileName, "rb")),output) 
         ^^^^ 
관련 문제