python file command-line profiling cprofile

python - cProfile guardar los datos en un archivo provoca jumbles de caracteres



command-line profiling (1)

Estoy usando cProfile en un módulo llamado bot4CA.py, así que en la consola escribo:

python -m cProfile -o thing.txt bot4CA.py

Después de que el módulo se ejecuta y sale, crea un archivo llamado thing.txt y cuando lo abro, hay algo de información allí, y el resto es una mezcla de caracteres en lugar de un archivo de datos perfectamente organizado que es lo que quiero. ¿Alguien sabe cómo usar cProfile y termina con una tabla de datos perfectamente organizada, como cuando se usa normalmente en la línea de comandos, excepto en un archivo? Aquí hay un ejemplo de algunos de los datos en el archivo .txt:

{( s) build/bdist.win32/egg/colorama/winterm.pyi'' t reset_all( i i gpàÂs% ?geOÙHÌœE?{( s- build/bdist.win32/egg/colorama/ansitowin32.pyi¥

Lo que realmente quiero es lo que sucede cuando invocas cProfile.run () que da como resultado una tabla ordenada impresa que muestra los tiempos de ejecución de todas las funciones, excepto en lugar de impresas, guardadas en un archivo ya que este programa es bastante grande y se ejecuta mucho de funciones.


Debe usar el módulo pstats para analizar este archivo y extraer de él información en formato fácil de usar. Por ejemplo:

import pstats p = pstats.Stats(''thing.txt'') p.sort_stats(''cumulative'').print_stats(10)

Está todo en la documentación , por supuesto. Revise el "manual del usuario instantáneo" que hay, se explica todo.