我尝试创建一个脚本来循环遍历父文件夹和子文件夹并将所有 pdf 合并为一个。下面是我到目前为止编写的代码,但我不知道如何将它们组合成一个脚本。
参考: 合并 PDF 文件
第一个功能是遍历父文件夹下的所有子文件夹并获取每个 pdf 的路径列表。
import os
from PyPDF2 import PdfFileMerger
root = r"folder path"
path = os.path.join(root, "folder path")
def list_dir():
for path,subdirs,files in os.walk(root):
for name in files:
if name.endswith(".pdf") or name.endswith(".ipynb"):
print (os.path.join(path,name))
其次,我创建了一个列表以将所有路径附加到子文件夹中的 pdf 文件并合并到一个组合文件中。在这一步,我被告知:
类型错误:listdir:路径应该是字符串、字节、os.PathLike 或 None,而不是列表
root_folder = []
root_folder.append(list_dir())
def pdf_merge():
merger = PdfFileMerger()
allpdfs = [a for a in os.listdir(root_folder)]
for pdf in allpdfs:
merger.append(open(pdf,'rb'))
with open("Combined.pdf","wb") as new_file:
merger.write(new_file)
pdf_merge()
为了避免错误并将两个功能组合在一起,我应该在哪里修改代码?