【问题标题】:Reading multiple files "except IOError as exc:"读取多个文件“除了 IOError 作为 exc:”
【发布时间】:2019-01-04 01:43:58
【问题描述】:

我正在查看一些示例,了解如何读取多个数据文件遇到这些代码弹出很多:

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

【问题讨论】:

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


    【解决方案1】:

    这里,我们将逐行浏览这些代码。

    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。这意味着异常可能意味着从“Permission Denied”到“Out of Memory”。

    希望对你有所帮助:D

    【讨论】:

      猜你喜欢
      • 2011-03-24
      • 1970-01-01
      • 2015-06-15
      • 1970-01-01
      • 1970-01-01
      • 2019-12-02
      • 2017-09-19
      • 2021-09-24
      • 2020-01-25
      相关资源
      最近更新 更多