Python 3.8。我正在使用下面显示的代码执行OS程序。但是“输出”内容包含一个ASCII值列表,而不是相应的字符串字符。我知道我可以将这些ASCII值转换为字符,但是我确信必须有一种方法来获取字符串字符和/或字符行的输出。
p = subprocess.Popen(strCommand, shell=True, stdin=subprocess.PIPE, stderr=subprocess.STDOUT, stdout=subprocess.PIPE, close_fds=True)
output, err = p.communicate()
任何想法?
猜测您正在调用list()
上的output
之类的东西,它将把字节转换为其ASCII序数。
Windows示例,其中strCommand == 'dir'
:
>>> output, err = p.communicate()
>>> output
b' Volume in drive C is OSDisk\r\n
>>> type(output)
<class 'bytes'>
>>> list(output[:10])
[32, 86, 111, 108, 117, 109, 101, 32, 105, 110]
如果需要str
,请致电output.decode('<encoding>')
。