如何解决执行shell命令时如何处理随机字节流?
我想在 shell 中运行任意命令并获取 stdout 和 stderr,例如像这样:
cmd = subprocess.run(command,shell=True,universal_newlines=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
stdout = cmd.stdout
stderr = cmd.stderr
然而,stdout 和 stderr 可能包含随机字节流。这会导致如下错误:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xfd in position 135: invalid start byte
我该如何处理?结果像 � 这样的东西就可以了。
解决方法
此错误是由 universal_newlines=True
导致您的数据被读取为文本而不是二进制内容引起的。删除该参数。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。