Python 获取错误的错误号
我需要从Python中发生的错误中获取错误号 前;尝试通过Paramiko包传输目录时,发现以下代码错误:Python 获取错误的错误号,python,error-handling,paramiko,Python,Error Handling,Paramiko,我需要从Python中发生的错误中获取错误号 前;尝试通过Paramiko包传输目录时,发现以下代码错误: try: sftp.put(local_path,target_path) except (IOError,OSError),errno: print "Error:",errno 我得到了它的输出 Error: [Errno 21] Is a directory 我想利用错误号进入更多代码以传输目录和目录内容。感谢您澄清您的问题 Python中的大多数Exce
try:
sftp.put(local_path,target_path)
except (IOError,OSError),errno:
print "Error:",errno
我得到了它的输出
Error: [Errno 21] Is a directory
我想利用错误号进入更多代码以传输目录和目录内容。感谢您澄清您的问题 Python中的大多数
Exception
s没有“错误号”。一个异常(无双关语)是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
输出
[Errno 2] No such file or directory: 'hello'
2
No such file or directory
hello
如果您谈论的是
errno.h
错误号,则可以从异常对象上的errno
属性获取它们,但只能在EnvironmentError
(其中包括OSError
、IOError
和WindowsError
)上获取
特别是在
WindowsError
上,您还将获得一个带有Windows特定错误号的winerror
属性。(不过,您并不经常看到其中一个,因为Python直接使用Win32 API的情况相对较少。)还有一个软件包,它允许处理错误代码,而不必处理代码中的幻数。这里有一个例子:这正是我想要的!谢谢,Tim。注意,对于OSError,除非至少为异常指定了两个参数(filename是可选的第三个参数),否则这些参数看起来都是None(包括errno)。