python3 subprocess_python3 subprocess.check_output的使用

demo

import shlex, subprocess

command_line = "echo 'hello' "

args = shlex.split(command_line)

print(args)

try:

p = subprocess.check_output(args,stderr=subprocess.STDOUT,timeout=5)

print(p)

except subprocess.TimeoutExpired as time_e:

print(time_e)

except subprocess.CalledProcessError as call_e:

print(e.output.decode(encoding="utf-8"))

注意点

1.timeout参数不能和shell=True一起使用,不然就算是时间到了,还是会继续执行,等执行结束以后才会抛出subprocess.TimeoutExpired异常,timeout的单位是秒。

2.check_output返回的是子程序的执行结果(上述demo返回的就应该是helo),也是unicode编码,如果程序执行报错的话,会直接抛出异常CalledProcessError,并且异常当中会有output属性,该属性为unicode编码的,要当字符串使用的时候需要转码,如e.output.decode(encoding="utf-8")

3.想要执行的命令command_line不能有类似

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值