Я должен получить код ошибки из ошибки, которая произошла в Python.
Исключая; При попытке передать каталог через пакет Paramiko, ошибка фиксируется с этой частью кода:
try:
sftp.put(local_path,target_path)
except (IOError,OSError),errno:
print "Error:",errno
Для которого я получаю вывод,
Error: [Errno 21] Is a directory
Я хочу использовать код ошибки для входа еще в некоторый код для передачи каталога и содержания каталога.
Спасибо за разъяснение вашего вопроса.
Большинство исключений
в Python не имеют «номеров ошибок». Одно исключение (без каламбура) - это исключения HTTPError
, например:
import urllib2
try:
page = urllib2.urlopen("some url")
except urllib2.HTTPError, err:
if err.code == 404:
print "Page not found!"
else:
...
Другое исключение (как указано bobince) - это EnvironmentError
s:
import os
try:
f=open("hello")
except IOError, err:
print err
print err.errno
print err.strerror
print err.filename
output
[Errno 2] No such file or directory: 'hello'
2
No such file or directory
hello
Если вы говорите об ошибках errno.h
, их можно получить из свойства errno
объекта исключения, но только для EnvironmentError
(который включает OSError
, IOError
и WindowsError
).
В частности, при WindowsError
вы также получите свойство winerror
с номером ошибки, характерным для Windows. (Однако вы не часто встречаетесь с одним из них, поскольку Python использует Win32 API напрямую относительно редко.)