【发布时间】:2021-09-30 09:18:08
【问题描述】:
当使用带有re.DEBUG 标志的re.compile() 时,解析信息会打印到控制台。
例如,运行 pattern = re.compile(r'[ab]+', re.DEBUG) 会在控制台中打印以下输出:
MAX_REPEAT 1 MAXREPEAT
IN
LITERAL 97
LITERAL 98
我想得到这个解析树并将它保存在一个变量中以便我可以处理它,但是我根本找不到这个输出的保存位置。
注意:我可以通过将编译作为子进程运行并使用捕获输出来获取输出
proc = subprocess.Popen(["python", "-c", "import re; re.compile(r'[ab]+', re.DEBUG)"], stdout=subprocess.PIPE)
out = proc.communicate()[0]
但感觉有点矫枉过正。
有没有更简单的获取调试输出的方法?
【问题讨论】:
标签: python debugging terminal output re