Question cProfil L'enregistrement des données dans un fichier provoque des sauts de caractères


J'utilise cProfile sur un module nommé bot4CA.py donc dans la console je tape:

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

Une fois que le module s'exécute et quitte, il crée un fichier nommé thing.txt et quand je l'ouvre, il y a quelques informations, et le reste est un mélange de caractères au lieu d'un fichier de données organisé, ce que je veux. Est-ce que quelqu'un sait comment utiliser cProfile et se retrouver avec une table de données bien organisée comme si on l'utilisait normalement sur la ligne de commande, sauf dans un fichier? Voici un exemple de certaines des données du fichier .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¥

Ce que je veux vraiment, c'est ce qui se passe lorsque vous invoquez cProfile.run (), ce qui résulte en une table bien organisée montrant les temps d'exécution de toutes les fonctions, sauf imprimées, sauvegardées dans un fichier. des fonctions.


28
2017-11-27 02:04


origine


Réponses:


Vous devriez utiliser le pstats module pour analyser ce fichier et en extraire des informations dans un format convivial. Par exemple:

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

C'est tout dans la documentation, bien sûr. Passez en revue le "manuel utilisateur instantané", qui explique tout.


42
2017-11-27 03:03