根据你的描述:
我需要跟踪脚本内部运行,所以我可以把它重定向到一个文件
$ python -m trace -t prog.py
这将输出跟踪结果到标准输出,我想你要存储结果到文件中。以下是基于official documentation的示例。
prog.py
def main():
pass
if "__main__" == __name__:
main()
trace_run.py
import sys
import trace
import imp
# create a Trace object, telling it what to ignore, and whether to do tracing or line-counting or both.
tracer = trace.Trace(
ignoredirs=[sys.prefix, sys.exec_prefix],
trace=0,
count=1)
# load target program dynamically
target = imp.load_source(sys.argv[1], './'+sys.argv[1])
# run the main function of program using the given tracer
tracer.runfunc(target.main)
# make a report, placing output in the current directory
r = tracer.results()
r.write_results(show_missing=True, coverdir=".")
然后简单地运行python trace_run.py prog.py
prog.cover
>>>>>> def main():
1: pass
>>>>>> if "__main__" == __name__:
>>>>>> main()