cProfile saving data to file causes jumbles of characters cProfile saving data to file causes jumbles of characters python python

cProfile saving data to file causes jumbles of characters


You should use the pstats module to parse this file and extract information in user-friendly format from it. For example:

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

It's all in the documentation, of course. Go over the "instant user's manual" in there, it explains everything.


to dump the stats driectly:

echo 'stats' | python3 -m pstats path/to/cprofile_output_file

pstats also has a shell

$ python3 -m pstats path/to/cprofile_output_file

within we can issue stats or sort commands like so:

$ python3 -m pstats path/to/cprofile_output_fileWelcome to the profile statistics browser.prof.txt% sort cumtimeprof.txt% reverseprof.txt% stats   Ordered by: standard name   ncalls  tottime  percall  cumtime  percall filename:lineno(function)        1    0.000    0.000    0.000    0.000 63:1(<module>)        1    0.000    0.000    0.000    0.000 {built-in method builtins.exec}        1    0.000    0.000    0.000    0.000 {built-in method builtins.print}        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}prof.txt% ?Documented commands (type help <topic>):========================================EOF  add  callees  callers  help  quit  read  reverse  sort  stats  strip

a micro-feature I enjoyed here is I get to reverse the sort order natively <3

echo -e 'sort cumtime\nreverse\nstats' | python3 -m pstats path/to/cprofile_output_file


The other answers are more powerful and flexible, but if you just want to get a quick output, use > instead of -o. That will save the report in plain text format.

python -m cProfile myscript.py > cprofile.txtpython -m cProfile bot4CA.py > thing.txt