Python 3.x 如果路径包含“0”,则os.listdir不起作用&引用;

Python 3.x 如果路径包含“0”,则os.listdir不起作用&引用;,python-3.x,Python 3.x,我有一个问题,当我将Pythonos.listdir与目录路径一起使用时,出现了一个错误,找不到文件,并且我的文件名包括“” 错误: def traverse_dir(path: str, allfile: list): filelist = os.listdir(path) for filename in filelist: filepath = os.path.join(path, filename) if os.path.isdir(fi

我有一个问题,当我将Python
os.listdir
与目录路径一起使用时,出现了一个错误,找不到文件,并且我的文件名包括“”

错误:



def traverse_dir(path: str, allfile: list):
    filelist = os.listdir(path)
    for filename in filelist:
        filepath = os.path.join(path, filename)
        if os.path.isdir(filepath):
            traverse_dir(filepath, allfile)
        else:
            allfile.append(filepath)
    print("ok")
    return allfile


if __name__ == '__main__':
    filelists = []
    print(traverse_dir(r'H:\2021-0003\恢复提取的数据\图片文件(PNG)、电子文档(DOC、DOCX、WPS)、电子表格(XLS、XLSX、ET)\2021-0003-JC01\Partition1', filelists))



但是我打开文件,它是存在的。

要解决您的问题,您可以使用以下代码(在Python 3.7上测试):

导入操作系统
从pathlib导入路径
def traverse_dir(basep:str,allfile:list):
#迭代当前路径中的每个项
对于os.scandir(basep)中的条目:
#如果当前项目可在操作系统中访问(且当前项目未隐藏,请继续)
#如果希望包含隐藏文件,请注释掉和零件
如果os.access(entry,os.R_OK)和not entry.name.startswith('.'):
#如果当前项是目录,则执行深度优先遍历
如果条目.is_dir():
#打印(entry.path)
遍历目录(entry.path,allfile)
#否则,将项目名称添加到我们的文件列表中
其他:
allfile.append(entry.name)
返回所有文件
def main():
基本路径=路径(r'H:\2021-0003\恢复提取的数据\图片文件(巴布亚新几内亚)电子文档(DOC、DOCX、WPS)电子表格(XLS、XLSX、ET)\2021-0003-JC01\Partition1')
文件列表=[]
打印(遍历目录(基本路径、文件列表))
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
main()
请验证这是否适用于您


注意:递归将花费很长时间

请共享您正在使用的代码。conatians a
的任何文件都不是目录而是文件,带点的目录是隐藏的file@anurag文件列表中文件名的def traverse_dir(path:str,allfile:list):filelist=os.listdir(path):filepath=os.path.join(path,filename)如果os.path.isdir(filepath):traverse_dir(filepath,allfile)else:allfile.append(filepath)print(“确定”)如果name='main':filelist=[]print(traverse_dir(r'H:\2021-0003)返回allfile\恢复提取的数据\图片文件(巴布亚新几内亚)电子文档(DOC、DOCX、WPS)电子表格(XLS、XLSX、ET)\2021-0003-JC01\Partition1',filelist))@nianfoyi请编辑问题分享代码,评论部分不是分享代码的地方@anurag好的,我第一次使用stack over,所以,…谢谢!这是一个令人惊讶的答案,我们向那些与其他人一起使之成为可能的令人惊讶的人鼓掌!
FileNotFoundError: [WinError 3] 系统找不到指定的路径。: 'H:\\2021-0003\\恢复提取的数据\\图片文件(PNG)、电子文档(DOC、DOCX、WPS)、电子表格(XLS、XLSX、ET)\\2021-0003-JC01\\Partition1\\Root\\Documents and Settings\\Administrator\\AppData\\Local\\Kingsoft\\WPS Cloud Files\\userdata\\qing\\filecache\\.343623948\\cachedata\\0D853AE97AA040BAA4381F40FD50701A_temp'