python - color - plotly layout
¿Existe una forma de plataforma cruzada para obtener información del OSError de Python? (1)
El atributo errno
en el error debe ser el mismo en todas las plataformas. WindowsError
excepciones de WindowsError
en Windows, pero como esta es una subclase de OSError, el mismo bloque " except OSError:
" lo detectará. Windows tiene sus propios códigos de error, y estos son accesibles como .winerror
, pero el atributo .errno
aún debe estar presente, y puede utilizarse de forma multiplataforma.
Los nombres simbólicos para los diversos códigos de error se pueden encontrar en el módulo errno
. Por ejemplo,
import os, errno
try:
os.mkdir(''test'')
except OSError, e:
if e.errno == errno.EEXIST:
# Do something
También puede realizar la búsqueda inversa (para averiguar qué código debe usar) con errno.errorcode
. Es decir:
>>> errno.errorcode[17]
''EEXIST''
En una operación de creación de directorio simple, por ejemplo, puedo hacer un error OSE como este:
(Ubuntu Linux)
>>> import os
>>> os.mkdir(''foo'')
>>> os.mkdir(''foo'')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
OSError: [Errno 17] File exists: ''foo''
Ahora puedo detectar ese error así:
>>> import os
>>> os.mkdir(''foo'')
>>> try:
... os.mkdir(''foo'')
... except OSError, e:
... print e.args
...
(17, ''File exists'')
¿Existe una forma de plataforma cruzada en la que pueda saber que el 17 o el ''Archivo existente'' siempre significará lo mismo para poder actuar de manera diferente según la situación?
(Esto surgió durante otra pregunta ).