我正在使用sh在
Python脚本中运行git命令.
In [1]: from sh import git In [2]: s = git("log","-1",pretty="format:%h %s") In [3]: print s 4f14a66 basic debug page
这似乎按预期工作.但是,在Django模板中使用它会给出[?1h = 4f14a66基本调试页面[m [K [?1l>].我尝试使用repr()查看此字符串中的字符,但无济于事:
In [4]: print repr(s) 4f14a66 basic debug page
事实证明,sh中的命令返回一个具有.stdout属性的RunningCommand:
In [5]: type(s) Out[5]: sh.RunningCommand In [7]: s.stdout Out[7]: '\x1b[?1h\x1b=\r4f14a66 basic debug page\x1b[m\r\n\r\x1b[K\x1b[?1l\x1b>'
如何获得“4f14a66基本调试页”,即没有转义的字符串?从Bash运行命令很好:
$git log -1 --pretty="format:%h %s" 4f14a66 basic debug page