os.listdir(path) 在 filepath

问题描述

命令 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 (将#修改为@)