我使用的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 basic debug page[m [K[?1l>
。 我想看看使用了这个字符串的字符是什么repr()
但没有成功:
In [4]: print repr(s)
4f14a66 basic debug page
事实证明,在命令sh
返回RunningCommand
具有.stdout
属性:
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 basic debug page"
即没有逃逸的字符串? 从运行猛砸命令是罚款:
$ git log -1 --pretty="format:%h %s"
4f14a66 basic debug page