为了账号安全,请及时绑定邮箱和手机立即绑定

如何转换 subprocess.Popen() 返回的字符串的编码?

如何转换 subprocess.Popen() 返回的字符串的编码?

呼唤远方 2021-09-28 15:24:48
我正在尝试使用 subprocess.Popen() 执行命令并使用以下代码提取结果。proc = subprocess.Popen([command], stdout=subprocess.PIPE, shell=True)(out, err) = proc.communicate()gadgets = out.split('\n')结果是一个字符串,可以根据结果中的换行符进行拆分,将其拆分为多行。为简单起见,我们假设代码片段中的 gadgets 变量是两个字符串的列表。当我使用 python print() 函数从控制台上的列表中打印单个项目时,我得到如下正常的 ascii 文本。for item in gadgets:    print(item)输出:syscall; xlatb; ret;但是,当我打印列表时,我得到了不同类型的字符。输出如下:print(gadgets)输出:['\x1b[1;33msyscall\x1b[0m\x1b[1;34m; \x1b[0m', '\x1b[1;33mxlatb\x1b[0m\x1b[1;34m; \x1b[0m\x1b[1;33mret\x1b[0m\x1b[1;34m; \x1b[0m']我相信 print() 函数会以某种方式更改编码并在控制台上为各个项目打印正常的 ascii 文本。谁能告诉我在这种情况下 print() 函数使用哪种编码?谢谢!
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 399 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号