python subprocess decode报错?

python小白,在看廖雪峰pythonsubprocess教程的时候碰到下面一个执行nslookup命令的报错
操作系统:win10python版本:3.7
importsubprocess
print('$nslookup')
p=subprocess.Popen(['nslookup'],stdin=subprocess.PIPE,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
output,err=p.communicate(b'setq=mx\npython.org\nexit\n')
print(output.decode('utf-8'))
print('Exitcode:',p.returncode)
报错信息:
$nslookup
Traceback(mostrecentcalllast):
File"E:/py/learning-python/Process_Thread/multi_process/sub_process.py",line14,in
print(output.decode('utf-8'))
UnicodeDecodeError:'utf-8'codeccan'tdecodebyte0xc8inposition2:invalidcontinuationbyte
Processfinishedwithexitcode1
请问造成这个错误的原因是什么?如何解决谢谢。
一只斗牛犬
浏览 204回答 2
2回答

神不在的星期二

decode默认使用strict模式,第二个参数改成ignore的话可正常解码,具体原因不知道是什么.print(output.decode('utf-8','ignore'))
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript