Python: "import as" 关键字错误
Python: "import as" Keyword Error
我一直在使用 Python 并且正在导入 PyPDF2 模块。我实际上已经想出了如何解决我的问题,但我想知道为什么我以前的代码不起作用。
这是旧代码:
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")
第一段代码没有使控制台崩溃——事实上它确实创建了一个文件。唯一的问题是它创建的文件无法打开,而且只有 1 KB 大。第二段代码类似于多少人在 Whosebug 中使用过此模块并且它完美运行。我的问题是:为什么第一段代码没有为我提供预期的结果,因为我似乎在将 PdfFileMerger 作为合并导入后正确地使用了 "merger"?
感谢您提供的任何帮助!
如前面的评论所述,每次调用 merger()
时,您都在创建一个新的 PdfFileMerger
对象。因此,当您调用 merger().write("AllInOne.pdf")
时,您正在编写一个没有附加文件的 PDF。
当您使用 import <module> as
时,您是“'aliasing'”导入的模块。所以你的第一个代码块和下面的完全一样:
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")
我一直在使用 Python 并且正在导入 PyPDF2 模块。我实际上已经想出了如何解决我的问题,但我想知道为什么我以前的代码不起作用。
这是旧代码:
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")
第一段代码没有使控制台崩溃——事实上它确实创建了一个文件。唯一的问题是它创建的文件无法打开,而且只有 1 KB 大。第二段代码类似于多少人在 Whosebug 中使用过此模块并且它完美运行。我的问题是:为什么第一段代码没有为我提供预期的结果,因为我似乎在将 PdfFileMerger 作为合并导入后正确地使用了 "merger"?
感谢您提供的任何帮助!
如前面的评论所述,每次调用 merger()
时,您都在创建一个新的 PdfFileMerger
对象。因此,当您调用 merger().write("AllInOne.pdf")
时,您正在编写一个没有附加文件的 PDF。
当您使用 import <module> as
时,您是“'aliasing'”导入的模块。所以你的第一个代码块和下面的完全一样:
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")