Python os.WACK onerror参数出现问题
我到处搜索,但找不到关于os.walk(onerror)如何工作的解释 os.walk完全忽略listdir()错误,但我需要至少接收警报,以更好地防止导致此错误的目录路径。我应该如何建立这个论点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
谢谢您的帮助。错误处理程序应该是可调用的。它将被一个参数调用,即异常实例
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
属性。谢谢,这对我帮助很大。我希望它能帮助更多类似情况的人。