Python中subprocess库的用法介绍


本文摘自php中文网,作者不言,侵删。

本篇文章给大家带来的内容是关于Python中subprocess库的用法介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

介绍

使用subprocess模块的目的是用于替换os.system等一些旧的模块和方法。

导入模块

1

>>> import subprocess

命令执行call()

执行由参数提供的命令,把数组作为参数运行命令。其功能类似于os.system(cmd)。

1

>>> subprocess.call(['ls','-l')

其中参数shell默认为False。
在shell设置为True时,可以直接传字符串:

1

>>> subprocess.call('ls -l',shell=True)

获得返回结果check_output()

call()是不返回显示的结果的,可以使用check_ouput()来获得返回的结果:

1

2

>>> result = subprocess.check_output(['ls','-l'],shell=True)

>>> result.decode('utf-8')

进程创建和管理Popen类

subprocess.popen代替os.popen。可以创建一个Popen类来创建进程和进行复杂的交互。

创建不等待的子进程

1

2

3

import subprocess

child = subprocess.Popen(['ping','-c','4','www.baidu.com'])

print('Finished')

添加子进程等待

1

2

3

4

import subprocess

child = subprocess.Popen(['ping','-c','4','www.baidu.com'])

child.wait()  # 等待子进程结束

print('Finished')

添加了wait()后,主进程会等待子进程结束再执行下面的语句。

子进程文本流控制

标准输出重定向:

1

2

3

import subprocess

child = subprocess.Popen(['ls','-l'],stdout=subprocess.PIPE)    #将标准输出定向输出到subprocess.PIPE

print(child.stdout.read())

使用stdin与其配合使用:

1

2

3

4

import subprocess

child1 = subprocess.Popen(['cat','/etc/passwd'],stdout=subprocess.PIPE)

child2 = subprocess.Popen(['grep','root'],stdin=child1.stdout,stdout=subprocess.PIPE)

print child2.communicate()

以上就是Python中subprocess库的用法介绍的详细内容,更多文章请关注木庄网络博客!!

相关阅读 >>

Python中导入模块的关键字是什么

Python中descriptor的详细介绍

利用Python的socket发送http(s)请求方法

Python 匹配url中是否存在ip地址的方法

Python生成不重复随机数和对list乱序的解决方法

Python常用类型转换实现

Python格式化输出是什么意思

Python属于什么型语言

Python2和3区别大吗

Python怎么读文件

更多相关阅读请进入《Python》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...