在Python的pdb调试中,如何将输出保存到文件?
在PDB中保存调试输出到文件的正确方法
你之前用pp locals() >> pdbSaves.txt报错是因为>>是Shell的重定向语法,PDB会把它当成Python代码的一部分,误以为pdbSaves.txt是个变量,自然找不到就报NameError了。下面是两种靠谱的做法:
单次输出保存:直接调用pdb的
pp函数并指定输出文件流,在PDB提示符里执行:!import pdb; pdb.pp(locals(), open('pdbSaves.txt', 'w'))这里的
!是PDB里用来执行纯Python代码的前缀(也可以省略直接写代码),open('pdbSaves.txt', 'w')会创建/覆盖目标文件,把locals()的格式化输出写入其中。多次输出追加:如果要多次把调试内容写入同一个文件,可以先打开文件对象,之后重复调用
pp:!f = open('pdbSaves.txt', 'a') !pdb.pp(locals(), f) !pdb.pp(globals(), f) !f.close()用
'a'模式打开文件会追加内容,不会覆盖之前的输出,用完记得关闭文件。
内容的提问来源于stack exchange,提问作者puddles
相关产品推荐
相关产品推荐

