无法获得pstats

时间:2018-01-11 06:36:43

标签: python

我尝试使用https://docs.python.org/2/library/profile.html#module-cProfile

中的cProfile

我可以获取要打印的数据,但我希望能够操作数据并进行排序,以便获得我想要的信息。要获取要打印的数据,我使用:

b = cProfile.run("function_name")

但是在运行和打印之后,b = None我无法弄清楚它打印的数据在哪里,以便我可以操作数据。当然,我可以看到数据,但为了分析我需要能够将某种输出输入到IED编辑器中的数据。我尝试了pstats,但收到了错误消息。似乎要使用pstats我必须保存某种文件,但我无法弄清楚如何运行程序并将其保存到文件中。

更新:

我几乎有一个解决方案

cProfile.run('re.compile("foo|bar")', 'restats')

还有第二个参数可以将文件保存为' restats'。现在我应该能够打开并阅读它。

解决:

cProfile.run("get_result()", 'data_stats')
p = pstats.Stats('data_stats')
p.strip_dirs().sort_stats(-1).print_stats()
p.sort_stats('name')

1 个答案:

答案 0 :(得分:1)

cProfile.run("get_result()", 'data_stats')
p = pstats.Stats('data_stats')
p.strip_dirs().sort_stats(-1).print_stats()
p.sort_stats('name')

除了运行代码的第一个参数外,第二个参数实际上将输出保存到文件中。然后下一行将打开该文件。打开该文件后,您应该能够在IED编辑器中看到p的值,并能够使用普通的python操作来操作它。