【发布时间】:2013-02-28 05:06:24
【问题描述】:
python 文档 here 没有提到在调用 file.write() 期间可能引发的异常。
这是否意味着该函数不会引发任何异常?例如,file.write() 在没有磁盘空间的情况下会有什么行为?
【问题讨论】:
python 文档 here 没有提到在调用 file.write() 期间可能引发的异常。
这是否意味着该函数不会引发任何异常?例如,file.write() 在没有磁盘空间的情况下会有什么行为?
【问题讨论】:
它记录在top of the section on file objects:
当文件操作因 I/O 相关原因失败时,会引发异常 IOError。这包括由于某种原因未定义操作的情况,例如 tty 设备上的
seek()或写入打开以供读取的文件。
它没有提到每个方法的异常的原因是它对于每个由 IO 相关原因引起的 file 方法错误都是同一个异常 (IOError)。
根据错误号可以找出IOError的类型,可以提取如下:
try:
f = open("nosuchfile.txt")
except IOError as e:
print e.errno
这些错误编号来自操作系统,而不是 Python。在上述情况下,它将打印2,因为No such file or directory 是错误2。No space left on device 通常是错误28,尽管它可能取决于操作系统。
【讨论】: