首页 > 解决方案 > Python os.walk 返回码

问题描述

在我的应用程序中,我尝试遍历一组 fo 目录以查找某些文件。

for (dirpath, dirnames, filenames) in walk(path_to_network_share):
    print(filenames)
    break

遍历文件夹的实际尝试是通过调用os.walk来完成的。但是,即使没有连接到网络共享,os.walk也不会返回错误。我怎样才能发现错误?

标签: pythondirectoryoperating-system

解决方案


事实证明,我们可以提供一个函数作为可选参数('onerror'),它会收到一个 OSError 实例作为回报:

import os

def walk_error(os_error):
    return(os_error) # [WinError 53] The network path was not found: '\\\\path\\dir\\'

for file in os.walk('\\\\path\\dir\\', onerror=walk_error):
    print(file)

推荐阅读