C имеет perror и errno, которые выводят и сохраняют последнюю обнаруженную ошибку. Это удобно при выполнении file io, поскольку мне не нужно использовать fstat () каждый файл, который не работает, в качестве аргумента функции fopen (), чтобы представить пользователю причину сбоя вызова.
Мне было интересно, как правильно получить errno при аккуратной обработке исключения IOError в python?
In [1]: fp = open("/notthere") --------------------------------------------------------------------------- IOError Traceback (most recent call last) /home/mugen/ in () IOError: [Errno 2] No such file or directory: '/notthere' In [2]: fp = open("test/testfile") --------------------------------------------------------------------------- IOError Traceback (most recent call last) /home/mugen/ in () IOError: [Errno 13] Permission denied: 'test/testfile' In [5]: try: ...: fp = open("nothere") ...: except IOError: ...: print "This failed for some reason..." ...: ...: This failed for some reason...