我需要捕获一些 python 分析数据并生成报告。
虽然这个组件的大部分运行 Python 3.5,为了支持几个遗留模块,我们仍然有部分系统运行 2.7。
在这种情况下,3.5 通过调用 2.7subprocess.Popen()
并同时捕获stdout
和stderr
(分别用作数据和日志)。
我能够在 2.7 进程中运行 cProfile,将结果数据写入磁盘,然后将其加载到 pStats 中。
此时,我可以排序/过滤并打印到控制台。不幸的是,由于stdout
/stderr
已经在使用中,这并没有多大帮助。
我还希望有机会格式化、注入源代码片段等。
所以我需要以编程方式查询 pStats 类,建立一个合适的报告,然后将它存储在我们的消息传递系统中。
除了写入控制台之外,该文档似乎没有说明提取数据的任何方法。
该.stats
属性看起来很有希望,但仅包含一个省略大量信息的 3 元组数组。
如何以编程方式浏览 pStats 中的数据?
具体来说,我想至少提取:
- 源文件/行号
- 累计时间
- 独家时间