【发布时间】:2018-03-13 20:05:54
【问题描述】:
我希望通过创建 pdf 文件名列表,然后使用该列表的名称将 pdf 文件合并为一个,将多个 pdf 文件一起附加到一个 pdf 中。
我有以下代码返回我文件夹中文件名下的 pdf 文件名...
import os
path = 'C:\\Users\\chinc\\Desktop\\pdf testing'
filenames = [f for f in os.listdir(path) if f.endswith('.pdf')]
filenames
我还发现了以下我尝试调整的内容,以便我可以使用文件名列表而无需手动列出它们。这样做的原因是因为我希望经常使用这个程序,其中 pdf 文件名会发生变化,并且我希望处理的 pdf 数量可能多达数百个。
from PyPDF2 import PdfFileMerger, PdfFileReader
merger = PdfFileMerger()
for filename in filenames:
merger.append(PdfFileReader(file(filename, 'rb')))
merger.write('C:\\Users\\chinc\\Desktop\\pdf testing\\123.pdf')
使用此代码给我以下错误:
TypeError Traceback (most recent call last)
<ipython-input-15-5ae303d6f9cf> in <module>()
4
5 for filename in filenames:
----> 6 merger.append(PdfFileReader(file(filename, 'rb')))
7 merger.write('C:\\Users\\chinc\\Desktop\\pdf testing\\123.pdf')
TypeError: 'str' object is not callable
鉴于我在 python 方面的有限经验,我想知道我是否正确地处理了这个问题,因为我看到的所有附加示例都明确指出了正在使用的文件名。我所期待的是否现实?
【问题讨论】:
-
您没有正确打开文件。您需要先打开每个文件名的文件。我还建议使用 glob('*.pdf') 来定位您的文件。
-
您是否尝试使用语句
file(filename, 'rb')打开文件?