我收到以下错误:
[Errno 20] Not a directory:
到目前为止我尝试过:
for i in range(3):
numOfData = len(dir_2[i])
try:
for j in range(numOfData):
print os.listdir(os.path.join(dir_1[i], dir_2[i][j]))
except OSError:
print "Hello"
有没有更好的方法来解决这个问题?
答案 0 :(得分:0)
当然,您可以在使用os.listdir()
运行os.path.isdir()
之前检查目录是否存在。
但是,这不会保护您免受目录权限的影响(例如,如果它可能是个问题)。在这种情况下,使用os.access()
来查看是否可以阅读目录,除了它不是reliable
因此,尝试阅读和捕获特定的OSError
异常似乎是正确的(更好地请求宽恕而不是权限),如果目录没有&#,可能先用os.path.isdir()
为用户打印更好的消息39;根本不存在。
看到你的评论,我意识到你应该将try/except
块放在循环中,这样如果出现错误,你仍然可以处理下一个目录。 / p>