python os模块引发OSError以外的错误?

时间:2013-10-29 04:10:10

标签: python

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

“注意如果文件名和路径无效或无法访问,或者其他参数类型正确但操作系统不接受,则此模块中的所有函数都会引发OSError。”

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

是否有任何情况会引发其他错误,例如IOError或诸如此类的错误?如果是这样,你能给我一些例子吗?

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

3 个答案:

答案 0 :(得分: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会引发其他类型的错误。

答案 1 :(得分:2)

如果访问该位置时出现问题,则可以

IOError - 例如有人拔下USB驱动器

如果内存不足,

MemoryError几乎可以弹出任何地方

答案 2 :(得分:0)

检查此链接a link,这里它给出了IOError,即使你不使用-with构造。
这些错误类型或异常表示调用失败原因的问题类型。因此,不同类型的异常是可行的。使用os模块方法。它们抛出异常来指示问题的类型。因此可能不仅仅是OSError。 / p>