Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python os.WACK onerror参数出现问题_Python_Exception_Os.walk - Fatal编程技术网

Python os.WACK onerror参数出现问题

Python os.WACK onerror参数出现问题,python,exception,os.walk,Python,Exception,Os.walk,我到处搜索,但找不到关于os.walk(onerror)如何工作的解释 os.walk完全忽略listdir()错误,但我需要至少接收警报,以更好地防止导致此错误的目录路径。我应该如何建立这个论点 谢谢您的帮助。错误处理程序应该是可调用的。它将被一个参数调用,即异常实例 def walk_error_handler(exception_instance): print("uh-oh!") # you probably want to do something more substant

我到处搜索,但找不到关于os.walk(onerror)如何工作的解释

os.walk完全忽略listdir()错误,但我需要至少接收警报,以更好地防止导致此错误的目录路径。我应该如何建立这个论点


谢谢您的帮助。

错误处理程序应该是可调用的。它将被一个参数调用,即异常实例

def walk_error_handler(exception_instance):
    print("uh-oh!")  # you probably want to do something more substantial here..

for root, dirs, files in os.walk(dirname, onerror=walk_error_handler):
    ...
os.walk
默认情况下忽略错误是出于设计。这允许漫游继续遍历其他目录,例如,漫游中遇到的一个子目录由于权限不足而无法列出

处理异常实例时,您感兴趣的所有信息都可能包含在
exception\u instance.args
类型(exception\u instance)
中。由于它是一个
OSError
(或子类型),
errno
将是一个有用的属性


您可以与stdlib模块的常数进行比较。例如,权限被拒绝是(13)。如果您试图以普通用户的身份列出
/root
,就会出现这种错误。

错误处理程序应该是可调用的。它将被一个参数调用,即异常实例

def walk_error_handler(exception_instance):
    print("uh-oh!")  # you probably want to do something more substantial here..

for root, dirs, files in os.walk(dirname, onerror=walk_error_handler):
    ...
os.walk
默认情况下忽略错误是出于设计。这允许漫游继续遍历其他目录,例如,漫游中遇到的一个子目录由于权限不足而无法列出

处理异常实例时,您感兴趣的所有信息都可能包含在
exception\u instance.args
类型(exception\u instance)
中。由于它是一个
OSError
(或子类型),
errno
将是一个有用的属性



您可以与stdlib模块的常数进行比较。例如,权限被拒绝是(13)。如果您试图以普通用户身份列出
/root
,则会出现此错误。

请。在发布您的问题之前,请仔细搜索。很可能已经有答案了。看看那些被骗者的答案。@PatrickArtner在我看来,那不是重复的。它询问默认情况下为什么忽略错误,这询问如何设置错误处理程序。@wim答案为。他们引用了关于如何设置错误处理程序的api。@PatrickArtner你在看一个与我不同的api吗?他们没有显示任何关于如何设置处理程序的代码..为什么不把你的意思作为注释@PatrickArtnerPlease发布呢。在发布您的问题之前,请仔细搜索。很可能已经有答案了。看看那些被骗者的答案。@PatrickArtner在我看来,那不是重复的。它询问默认情况下为什么忽略错误,这询问如何设置错误处理程序。@wim答案为。他们引用了关于如何设置错误处理程序的api。@PatrickArtner你在看一个与我不同的api吗?他们没有显示任何关于如何设置处理程序的代码。你为什么不把你所说的消息作为注释@patrickartner发布呢?有什么方法可以得到错误的原因吗?我试图调用strerror(),但它又返回了一个问题:“TypeError:‘member_descriptor’对象不可调用”。有没有办法找出它试图打开的文件?是的:检查
异常\u instance.filename
属性。谢谢,这对我帮助很大。我希望它能帮助更多类似情况的人。有没有办法得到错误的答案?我试图调用strerror(),但它又返回了一个问题:“TypeError:‘member_descriptor’对象不可调用”。有没有办法找出它试图打开的文件?是的:检查
异常\u instance.filename
属性。谢谢,这对我帮助很大。我希望它能帮助更多类似情况的人。