首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python:“导入作为”关键字错误

Python:“导入作为”关键字错误
EN

Stack Overflow用户
提问于 2017-05-05 23:56:37
回答 1查看 371关注 0票数 1

我一直在使用Python,并且正在导入PyPDF2模块。实际上,我已经知道了如何解决问题,但是我想知道为什么我以前的代码不能工作。

这是旧代码:

代码语言:javascript
复制
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")

这是现在工作的当前代码。

代码语言:javascript
复制
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作为合并导入之后,我似乎正确地处理了“合并”?

感谢您提供的任何帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-06 00:11:25

正如前面的注释所指出的那样,每次调用merger()时,都会创建一个新的PdfFileMerger对象。因此,当您调用merger().write("AllInOne.pdf")时,您正在编写一个没有附加文件的PDF。

当您使用import <module> as时,您是在“混叠”导入的模块。因此,您的第一个代码块与以下代码完全相同:

代码语言:javascript
复制
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")
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43815237

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档