通过一个示例,我正在寻找,该示例如何读取多个数据文件并跨这些代码弹出很多:
try:
...
except IOError as exc:
if exc.errno != errno.EISDIR:
raise
但是我看不到有人试图解释,所以我希望你们能帮助我理解它是什么吗?
这是一个示例:
import glob
import errno
...
#Create a list of the path of all .txt files
files_list = glob.glob(data_path)
#Iterate through the files in files_list
for file_name in files_list:
try:
#something
except IOError as exc:
if exc.errno != errno.EISDIR:
raise
答案 0 :(得分:0)
在这里,我们将逐行处理这些代码行。
except IOError as exc:
上面的行仅捕获异常,并在变量exc
中获取错误消息。异常的意思是
当系统函数返回与系统相关的错误时,包括I / O故障,例如“找不到文件”或“磁盘已满”(不适用于非法参数类型或其他偶然错误)。 Python 3 Docs
请注意,在Python 3中,OSError
现已合并为IOError
。
if exc.errno != errno.EISDIR:
此行将检查错误的类型。这是由错误的errno
属性给定的。具体来说,errno.EISDIR
表示出现错误是因为“文件”实际上是文件夹/目录。可以找到更多信息here :D。
raise
现在,if语句已通过并检查了错误类型。如果错误类型不表示给定的路径是目录,则仅允许它通过raise
。这意味着异常可能意味着“权限被拒绝”到“内存不足”。
希望对您有帮助:D