ylab color categoryorder python exception cross-platform

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 ).