这些不是颜色序列,看起来像终端初始化序列。特别:
ESC [ ? 1 h ESC =
是打开功能键模式的顺序,
ESC [ ? 1 l ESC >
是再次将其关闭的顺序。这表明
gitlog正在通过寻呼机运行。我不太清楚为什么。通常,当输出是管道时,git会抑制对分页器的使用(
subprocess.Popen()至少与它一样
sh,尽管我没有使用过该
sh模块,但我会考虑with
)。
(暂停查阅文档…)
啊哈!根据sh sh模块文档,默认情况下,
sh-module-
run命令的输出通过伪tty。这是在欺骗git运行您的寻呼机。
作为一种较脏的解决方法
git --no-pager log...,即使使用,您也可以禁止使用寻呼机
sh。或者,您可以尝试使用该
_tty_out=False参数(再次,我没有使用过
sh模块,您将不得不进行一些实验)。有趣的是,sh模块文档底部的示例之一是git!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)