问题描述
命令 os.listdir(path) 沿我的所有文件路径添加了一个额外的反斜杠。 在代码下方。
import os
import glob
from PyPDF2 import PdfFileMerger,PdfFileReader
mergedObject = PdfFileMerger()
rootdir = "C:\\Users\\Data\\2021\\02\\"
print ("Rootdir=" + rootdir)
thing = "TodosPDFs.pdf"
# Loop through all of subfolders and then pdf's and append their pages
for sub in os.listdir(rootdir):
path = rootdir+sub
print ("Path = "+ path)
arr = os.listdir(path)
if thing in arr: os.remove(path+thing)
mergedObject = PdfFileMerger()
for filepath in glob.iglob(path+"*.pdf"):
print(filepath)
mergedObject.append(PdfFileReader(filepath,'rb'))
mergedObject.write(path+"TodosPDFs.pdf")
mergedObject.close()
print("PDF Created")
预期结果是合并子文件夹中包含的所有 pdf。
错误信息: 回溯(最近一次调用最后一次): 文件“c:\Users\leona\OneDrive - PRODESP\Scripts\Python\MergePdf_multipleSubfolders.py”,第 16 行,在 arr = os.listdir(path) NotADirectoryError: [WinError 267] 目录名无效: 'C:\Users\Data\2021\02\28MQ0221.txt'
我尝试过: - 我在脚本中添加了打印,以显示“os.listdir”中正在发生转换。
-代码运行正常,我尝试手动添加一个 if rootdir[-1] != "//" 然后添加一个 "//" 以更正字符串。效果不佳,然后我返回到旧代码备份 scipt 但它不再工作了。
我使用 windows 和 VsCode 作为 IDE。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)