0

http://docs.python.org/2/library/os.html

“注意此模块中的所有函数在文件名和路径无效或不可访问的情况下,或具有正确类型但操作系统不接受的其他参数的情况下引发 OSError。”

所以所有以 os 开头的函数。在他们面前,即(os.chown 和 os.listdir)只会引发 OSError?

在任何情况下他们会引发其他错误,例如 IOError 或诸如此类的错误?如果是这样,你能给我举个例子吗?

PS我问这个问题是因为网站列出了“一些”案例,但我不确定这些“一些”是否是与 os 模块相关的唯一案例。

4

3 回答 3

3

如引用的那样,OSError 只会在“在文件名和路径无效或无法访问的情况下,或具有正确类型但操作系统不接受的其他参数的情况下”引发。

因此,例如,尝试os.chdir(42)

>>> os.chdir(42)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: must be string, not int

TypeError - 因为参数没有正确的类型 ( ...other arguments that have the correct type...)

OSError 表示操作系统不接受参数

所以答案是肯定的,os可以引发其他类型的错误。

于 2013-10-29T04:16:49.217 回答
2

IOError如果访问该位置时出现问题 - 比如有人拔下 USB 驱动器,则可能

MemoryError如果内存不足,几乎可以在任何地方弹出

于 2013-10-29T04:18:41.443 回答
0

检查这个链接,一个链接,这里它给出了 IOError,即使你不使用 with-as 构造。
这些错误类型或异常表明导致调用失败的问题类型。因此可能存在不同类型的异常。即使使用 os 模块方法。它们抛出异常以表明问题的类型。因此可能不仅仅是 OSError。

于 2013-10-29T04:20:27.060 回答