在使用subprocess.popen()会获取返回值,但是读取行时一直gbk编码报错:
p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
print(p.stdout.readline())
报错:'UnicodeDecodeError: "gbk" code can`t decode byte 0x80 in position 88 : illegal multibyte sequence'
解决方案一:
print(p.stdout.readline().decode("gbk", "ignore"))
解决方案二:
添加 Popen的参数 universal_newlines=True
p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True, universal_newlines=True)
print(p.stdout.readline())