Python-stats: wie Schreibe ich es auf eine (lesbare) Datei
Ich bin mit Python ' s hotshot-profiler: http://docs.python.org/2/library/hotshot.html
Er zeigt, wie drucken Sie die Statistiken:
stats.print_stats(20)
Aber wie bekomme ich das in eine Datei? Ich bin mir nicht sicher, wie man an die Informationen, so kann ich schreiben es in eine Datei mit write().
EDIT:
Möchte ich den gleichen, leicht lesbaren Ergebnis wie gedruckt, wenn es auf diese Weise getan:
stats = hotshot.stats.load("stones.prof")
stats.strip_dirs()
stats.sort_stats('time', 'calls')
stats.print_stats(20)
Also es sieht wie folgt aus:
ncalls tottime percall cumtime percall filename:lineno(function)
1 3.295 3.295 10.090 10.090 pystone.py:79(Proc0)
(Also nicht Aussehen, wenn ich öffnen Sie die Steine.prof)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Statistiken nimmt ein optionales "stream" - argument. Öffnen Sie einfach eine Datei und übergeben Sie die open file-Objekt auf die "Stats" - Konstruktor, wie unten gezeigt. Von diesem Punkt aus jeder Aufruf print_stats() wird die Ausgabe an den stream übergeben wird in den Konstruktor. Hoffe, das hilft. 🙂
Wie über Ausgabe-Umleitung?
Landete ich umschreiben der print_stats () - Funktion, beginnend mit kopieren aus pstats.py. Es gibt eine Zeichenfolge zurück, die dann in eine Datei geschrieben werden. Habe ich nicht getestet, jede if-else-Schleife, nur dass es funktioniert in den Beispielen, die ich brauchte, es für. Ich verließ die ursprünglichen Zeilen auskommentiert. Ich habe Links die Namen der Variablen gleich, obwohl es ist nicht wirklich "selbst", das die Funktion nicht mehr.
Können Sie die Bibliothek verwenden: pstats_print2list
https://pypi.python.org/pypi/pstats_print2list
pip install pstats_print2list
Und Verwendung: