2017-05-05 1 views
0

저는 Python을 사용하여 PyPDF2 모듈을 가져오고 있습니다. 실제로 문제를 해결하는 방법을 알아 냈지만 이전 코드가 작동하지 않는 이유를 알고 싶습니다.Python : "import as"키워드 오류

from PyPDF2 import PdfFileMerger as merger, PdfFileReader 

def MakeOne(filesList): 


    for file in filesList: 
     merger().append((file)) 
    merger().write("AllInOne.pdf") 

    print("File AllInOne.pdf has been created") 

이 지금 작동 현재 코드는 다음과 같습니다

다음은 이전 코드입니다.

from PyPDF2 import PdfFileMerger, PdfFileReader 
def MakeOne(filesList): 

    merger = PdfFileMerger() 
    for file in filesList: 
     merger.append((file)) 

    merger.write("AllInOne.pdf") 

    print("File AllInOne.pdf has been created") 

첫 번째 코드는 콘솔을 충돌시키지 않았습니다. 실제로 파일을 만들었습니다. 유일한 문제는 파일을 열 수 없으며 크기가 1KB에 불과하다는 것입니다. 두 번째 코드는 StackOverflow에서 얼마나 많은 사람들이이 모듈을 사용했는지와 유사하며 완벽하게 작동합니다. 제 질문은 : 왜 합병으로 PdfFileMerger를 가져온 후 "합병"으로 제대로 작동했는지에 따라 첫 번째 코드가 나에게 예상 결과를 제공하지 못했을까요?

제공되는 도움에 감사드립니다.

+0

모든 'merger()'호출은 새로운'PdfFileMerger'를 만듭니다. – user2357112

답변

1

이전 메모 메모와 마찬가지로 merger()으로 전화 할 때마다 PdfFileMerger 개체가 새로 생성됩니다. 따라서 merger().write("AllInOne.pdf")으로 전화하면 첨부 파일이없는 PDF를 작성하는 것입니다.

import <module> as을 사용하면 가져온 모듈의 앨리어스가 생깁니다. 따라서 첫 번째 코드 블록은 다음과 똑같습니다 :

from PyPDF2 import PdfFileMerger, PdfFileReader 

def MakeOne(filesList): 


    for file in filesList: 
     PdfFileMerger().append((file)) 
    PdfFileMerger().write("AllInOne.pdf") 

    print("File AllInOne.pdf has been created") 
+0

지금 받으십시오. 당신과 user2357112 둘 모두에게 감사드립니다. –