在没有shell转义序列的情况下在Python中打印stdout
发布时间:2020-12-15 18:26:26 所属栏目:安全 来源:网络整理
导读:我正在使用sh在 Python脚本中运行git命令. In [1]: from sh import gitIn [2]: s = git("log","-1",pretty="format:%h %s")In [3]: print s4f14a66 basic debug page 这似乎按预期工作.但是,在Django模板中使用它会给出[?1h = 4f14a66基本调试页面[m [K [?
我正在使用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[?1hx1b=r4f14a66 basic debug pagex1b[mrnrx1b[Kx1b[?1lx1b>' 如何获得“4f14a66基本调试页”,即没有转义的字符串?从Bash运行命令很好: $git log -1 --pretty="format:%h %s" 4f14a66 basic debug page
REPL中的s.stdout不会打印它,而是显示其repr().使用print s.stdout获取您要查找的内容.
如果您不想要任何转义码,请考虑使用subprocess.call()执行它 – 如果stdout不是tty,则大多数程序不会输出任何转义序列. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- $cookieStore.get()在angularjs中返回undefined
- bash – 我应该以什么顺序发送信号以正常关闭进程
- Angular 2路由器 – 命名出口
- Bootstrap 模态框(Modal)带参数传值实例
- bash – 我如何默认为Jenkins shell执行的登录sh
- amazon-web-services – 在Elastic Beanstalk上
- 如何使用ng2-datepicker for angular 2 app
- 在IE 11上使用占位符文本时,Angular2设置为脏
- 角度 – webpack卡在95%发射/ ng构建–aot –wa
- 如何让vim在每次“save”命令后运行“cpplint”?
热点阅读