作者:mobiledu2502909745 | 来源:互联网 | 2023-10-11 18:17
Python文档说that
os.rename(src, dst)
… On Windows, if dst already exists, OSError will be raised even if it is a file …
但是,对我来说它引发了WindowsError.文档中有错误吗?
问题的第二部分(更一般,但受上述问题的启发):
UPD对不起,问题的第二部分是不正确的.除了OSError之外,WindowsError确实被捕获了.
解决方法:
由于OSError是WindowsError的超类,因此只需捕获OSError.
FWIW,核心开发人员可以自由地提出比文档承诺的最低限度更具体的异常.
此外,以下代码适用于我(在WindowsXP上运行Python2.7.2):
try:
raise os.rename('nonexisting_file', 'def')
except OSError:
print 'caught'