Python跟踪模块 - 在执行时跟踪行,但保存到文件,而不是stdout

Ror*_*ory 6 python trace stdout

我想跟踪python脚本执行时的行.但是我使用的程序需要将内容打印到stdout.python跟踪模块的trace选项将它们打印到stdout.有没有告诉它不要将它们打印到stdout,而是将它们保存到文件中?我尝试设置outfile参数,但它不会停止跟踪线的打印.

Ned*_*der 5

您可以复制跟踪模块代码,并进行一些更改以使其输出到您选择的文件中。print在第600行和第650行之间有五个要更改的语句。由于不需要太漂亮,可以将其添加到文件的末尾:

my_out_file = open("/home/mytrace.txt", "w")
Run Code Online (Sandbox Code Playgroud)

并更改打印语句,这样:

print "%s(%d): %s" % (bname, lineno,
                      linecache.getline(filename, lineno)),
Run Code Online (Sandbox Code Playgroud)

变成这个:

print >>my_out_file, "%s(%d): %s" % (bname, lineno,
                      linecache.getline(filename, lineno)),
Run Code Online (Sandbox Code Playgroud)