读取多个文件“除IOError以外,例如:”

时间:2019-01-04 01:43:58

标签: python-3.x operating-system glob errno ioerror

通过一个示例,我正在寻找,该示例如何读取多个数据文件跨这些代码弹出很多:

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

1 个答案:

答案 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