Kernprof(line_profiler):如何将结果输出为文本而不是二进制文件
Posted
技术标签:
【中文标题】Kernprof(line_profiler):如何将结果输出为文本而不是二进制文件【英文标题】:Kernprof (line_profiler): how to output result as text instead of a binary file 【发布时间】:2019-05-03 15:47:58 【问题描述】:运行kernprof时:
kernprof -l script_to_profile.py
输出存储在二进制文件中,可以在终端/命令行中读取。
有没有办法将结果输出到文本文件?
这似乎是有用的功能,但在文档或其他帖子中找不到。
【问题讨论】:
见How do I use line_profiler (from Robert Kern)?。 阅读您提到的页面(在发布此问题之前)-> 但我认为它没有提到输出到文本文件。kernprof
输出到标准输出,因此将其重定向到文件。
默认情况下,输出是一个二进制文件(至少在我的系统上)-> 即需要通过发出命令来读取它:“python -m line_profiler script_to_profile.py.lprof”,这将将内容打印到命令行。我希望直接输出到文本文件。我错过了什么?
听起来他们一定是改了。不幸的是pip install line_profiler
在当前版本中是broken,所以我无法安装最新版本。无论如何,你不能做类似python -m line_profiler script_to_profile.py.lprof > profile_output.txt
的事情吗?
【参考方案1】:
python -m line_profiler script_to_profile.py.lprof > profile_output.txt
将二进制输出转换为文本文件(感谢@martineau)
【讨论】:
以上是关于Kernprof(line_profiler):如何将结果输出为文本而不是二进制文件的主要内容,如果未能解决你的问题,请参考以下文章
Python 分析:使用 line_profiler 的 @profile 装饰器会导致错误
kernprof.py:NameError:未定义名称'profile'
Python Line_profiler 和 Cython 函数