2012-09-30 80 views
0

我想试图打开一个不存在的文件时要处理的IOError产生。我做的:的Python:错误消息解析

try: 
    inputFile = open('nosuchfile', 'r') 
except IOError as exception: 
    print 'error: %s' % (exception) 

这给了我:

error: [Errno 2] No such file or directory: 'nosuchfile' 

但我只有消息,而不是[错误2]部分感兴趣。所以我改变了我的代码。

print 'error: %s' % (exception.strerror) 

但现在我得到:

error: No such file or directory 

哪里的文件名去了?我知道我可以只单独打印的文件名,但我真的很喜欢这个名字是如何(如果有的话)存储在例外,但不能在任何其参数(打印exception.errno给予2)。

我使用的版本2.7.3。

回答

4

的文件名保存在,好了,filename属性:

try: 
    inputFile = open('nosuchfile', 'r') 
except IOError as exception: 
    print ('error: %s: %r' % (exception.strerror, exception.filename)) 
+0

哦,明白了。但是为什么当我打印exception.args时没有显示呢? –

+0

注意:'exception.strerror'是_not_的异常属性 –

+0

@Mr_and_Mrs_D嘛,[它的工作(http://ideone.com/fyrrFv),所以为什么你认为它不会是一个属性? – phihag