Załóżmy, że mam obiekt podobny do pliku, taki jak StreamIO, i chcę, aby moduł ostrzegawczy Pythona zapisywał do niego wszystkie komunikaty ostrzegawcze. Jak mogę to zrobić?Jak przekierować ostrzeżenia Pythona do strumienia niestandardowego?
6
A
Odpowiedz
11
Spróbuj realokacja warnings.showwarning tj
#!/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")
przekieruje wszystkie ostrzeżenia na standardowe wyjście.
0
Myślę, że coś jak to będzie działać, chociaż jest to kod niesprawdzone i interfejs wygląda jak tam jest bardziej przejrzysty sposób, który mnie obecnie wymyka:
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
Spojrzenie wewnątrz Lib \ warnings.py powinna pomóc postawić jesteś na dobrej drodze, jeśli to nie wystarczy.
0
import sys
import StringIO
sys.stdout = StringIO.StringIO()
Powiązane problemy
- 1. Jak wyłączyć ostrzeżenia Pythona
- 2. Jak przekierować wyjście log4j do mojego strumienia wyjściowego HttpServletResponse?
- 3. Jak przekierować wszystkie httpErrors do niestandardowego adresu URL?
- 4. Generowanie niestandardowego ostrzeżenia o czasie kompilacji C#
- 5. Jak przekierować strumień RTMP do klientów
- 6. Jak przekierować Boost.Log do pliku
- 7. Jak przekierować STDOUT do NSTextView?
- 8. Jak przekierować "stdout" do widgetu Label?
- 9. Konwersja strumienia wideo rtsp do strumienia http
- 10. przekierować nohup do donohup.out
- 11. Konwersja strumienia RTMP do strumienia MMS
- 12. Konwersja System.Drawing.Image do strumienia
- 13. System.Drawing.Image do strumienia C#
- 14. Jak napisać do strumienia StdOut programu bezpośrednio w C#?
- 15. Jak przekierować CakePHP do innej akcji/kontrolera?
- 16. jak przekierować obiekt ostream do bufora tymczasowego?
- 17. Jak przekierować STDOUT i STDERR do zmiennej
- 18. Jak przekierować zdarzenia myszy do innej kontrolki?
- 19. Jak przekierować do subviews z AngularJS?
- 20. Jak przekierować wyjście konsoli do pliku tekstowego
- 21. Jak przekierować do kotwicy w JSF?
- 22. Jak przekierować wyjście kompilatora gcc do pliku?
- 23. Jak przekierować do folderu publicznego na laravel
- 24. Jak przekierować przycisk do innej akcji
- 25. Jak przekierować z witryny www.domain.com do domeny.com?
- 26. jak przekierować wyjście polecenia do dwóch plików
- 27. jak przekierować stdout do widgetu Tekst Tkinter
- 28. Jak przekierować dane wyjściowe procesora do łańcucha?
- 29. Primefaces - jak przekierować do wersji mobilnej?
- 30. Jak przekierować żądanie wiosny do innej aplikacji?
Tylko uwaga - jest to inna realizacja od io.StringIO StringIO.StringIO nie ma metody, takie jak FILENO() zdefiniowane, natomiast io.StringIO ma FILENO() zdefiniowane, ale nie realizowane. – eacousineau