首页 > 编程语言 > 详细

python标准库:subprocess——子进程管理

时间:2020-03-26 15:52:29      阅读:59      评论:0      收藏:0      [点我收藏+]

subprocess是py2.4引入的功能,可以代替一些老旧的模块与功能:

os.system
os.spawn*
os.popen*
popen2.*
commands.*

优先考虑使用call方法,如果call不满足需求,可以使用更底层的Popen接口。

call

subprocess.call(args, *, stdin=None, stdout=None, stderr=None, shell=False)

call方法会执行args指定的命令,等命令完成后,返回一个returncode

用法

>>> subprocess.call(["ls", "-l"])
0

>>> subprocess.call("exit 1", shell=True)  # 不建议使用shell=True的这种方法。
1

不要在call中使用stdout=PIPE或stderr=PIPE,这样可能会导致死锁,可以使用Popen的communicate()方法进行管道操作。

check_call

subprocess.check_call(args, *, stdin=None, stdout=None, stderr=None, shell=False)

和call方法一样,不同的是当返回值非0时会抛出CalledProcessError异常。

check_output

subprocess.check_output(args, *, stdin=None, stderr=None, shell=False, universal_newlines=False)

返回命令输出的字节序列,如果返回值非0,会抛出CalledProcessError异常。

python标准库:subprocess——子进程管理

原文:https://www.cnblogs.com/CheeseZH/p/12574479.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!