读取多个文件 "except IOError as exc:"

Reading multiple files "except IOError as exc:"

我正在寻找通过一些示例如何读取多个数据文件经常遇到这些代码弹出窗口:

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

在这里,我们将逐行分析这些代码。

except IOError as exc:

上面一行只是捕获了一个异常,并在变量exc中获取了错误信息。异常的意思是

when a system function returns a system-related error, including I/O failures such as “file not found” or “disk full” (not for illegal argument types or other incidental errors). Python 3 Docs

注意 Python 3,现在是 OSError,因为 IOError 已合并到其中。

    if exc.errno != errno.EISDIR:

这一行将检查错误类型。这是由错误的 errno 属性给出的。具体来说,errno.EISDIR 表示出现错误是因为 'file' 实际上是一个文件夹/目录。可以找到更多信息 here :D.

        raise

现在 if 语句已经通过并检查了错误类型。如果错误类型并不意味着给定的路径是一个目录,它只会让它通过这里的 raise 。这意味着异常可能意味着从 'Permission Denied' 到 'Out of Memory'.

的任何内容

希望对您有所帮助:D