Digamos que tengo un objeto parecido a un archivo como StreamIO y quiero que el módulo de advertencia de Python le escriba todos los mensajes de advertencia. ¿Cómo puedo hacer eso?Cómo redirigir las advertencias de Python a una secuencia personalizada?
6
A
Respuesta
11
Try reasignar warnings.showwarning decir
#!/sw/bin/python2.5
import warnings, sys
def customwarn(message, category, filename, lineno, file=None, line=None):
sys.stdout.write(warnings.formatwarning(message, category, filename, lineno))
warnings.showwarning = customwarn
warnings.warn("test warning")
se redirigir todas las advertencias a la salida estándar.
0
creo que algo como esto iba a funcionar, aunque es de código no probado y la interfaz parece que hay una forma más limpia, que se me escapa en la actualidad:
import warnings
# defaults to the 'myStringIO' file
def my_warning_wrapper(message, category, filename, lineno, file=myStringIO, line=None):
warnings.show_warning(message, category, filename, lineno, file, line)
warnings._show_warning = my_warning_wrapper
Un vistazo al interior Lib \ warnings.py debería ayudar a poner estás en el camino correcto si eso no es suficiente.
0
import sys
import StringIO
sys.stdout = StringIO.StringIO()
Cuestiones relacionadas
- 1. ¿Cómo implementar una secuencia de eventos personalizada?
- 2. Cómo ignorar las advertencias de desaprobación en Python
- 3. advertencias pre-Python 2.6
- 4. Redirigir Python IO incrustado a una consola creada con AllocConsole
- 5. SCons: guardar/redirigir salida de texto gcc (advertencias)
- 6. ¿Cómo redirigir stderr en Python?
- 7. Ignorar permanentemente las advertencias
- 8. Copiar una secuencia en Python
- 9. ¿Cómo puedo redirigir de forma transparente una importación de Python?
- 10. Python: evitando las advertencias de pylint sobre demasiados argumentos
- 11. Redirigir asp.net mvc si se produce una excepción personalizada
- 12. Cómo desactivar las advertencias de sangría JSLint?
- 13. Cómo deshabilitar las advertencias de #pragma?
- 14. ¿Forma HTML POST a una secuencia de comandos python?
- 15. Uso de una envoltura de secuencia personalizada como comprobante de PHP http: // Contenedor de secuencia
- 16. ¿Cómo desarmo una secuencia de comandos de Python?
- 17. Hacer una secuencia de comandos de Python Orientado a objetos
- 18. Deshabilitar las advertencias de IntelliJ
- 19. Python + Django página redirigir
- 20. Generar una secuencia de números en Python
- 21. Python: Imprima solo el mensaje en las advertencias
- 22. ¿Cómo usar una función de comparación personalizada en Python 3?
- 23. redirigir todas las extensiones .html a .php
- 24. Añadir a la clase personalizada en Python
- 25. Reventado de advertencias de MySQL en Python
- 26. R: cómo borrar todas las advertencias
- 27. Desactivar las advertencias debido a la biblioteca de impulso
- 28. Suprimir las advertencias de Doxygen
- 29. Cómo eliminar las advertencias LNK4217 y LNK4049
- 30. Redirigir automáticamente a una página
Sólo una nota - esta es una aplicación diferente de io.StringIO StringIO.StringIO no tiene métodos como fileno() definidos, mientras que io.StringIO tiene fileno() definido pero no implementado. – eacousineau