千家信息网

如何使用python中subprocess

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要讲解了"如何使用python中subprocess",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"如何使用python中subprocess
千家信息网最后更新 2026年11月02日如何使用python中subprocess

这篇文章主要讲解了"如何使用python中subprocess",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"如何使用python中subprocess"吧!

1、subprocess这个模块来产生子进程,并且可以连接到子进程的标准输入、输出、错误中,还可以获得子进程的返回值。

2、subprocess提供了2种方法调用子程序。

实例

# coding:utf-8import os# popen返回文件对象,同open操作一样f = os.popen(r"ls", "r")l = f.read()print(l)f.close()

Python subprocess知识点扩充

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

运行python的时候,我们都是在创建并运行一个进程。像Linux进程那样,一个进程可以fork一个子进程,并让这个子进程exec另外一个程序。在Python中,我们通过标准库中的subprocess包来fork一个子进程,并运行一个外部的程序。

subprocess包中定义有数个创建子进程的函数,这些函数分别以不同的方式创建子进程,所以我们可以根据需要来从中选取一个使用。另外subprocess还提供了一些管理标准流(standard stream)和管道(pipe)的工具,从而在进程间使用文本通信。

导入模块

>>> import subprocess

命令执行call()

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

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

其中参数shell默认为False。

在shell设置为True时,可以直接传字符串:

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

获得返回结果check_output()

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

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

进程创建和管理Popen类

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

创建不等待的子进程

import subprocesschild = subprocess.Popen(['ping','-c','4','www.baidu.com'])print('Finished')

添加子进程等待

import subprocesschild = subprocess.Popen(['ping','-c','4','www.baidu.com'])child.wait() # 等待子进程结束print('Finished')

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

子进程文本流控制

标准输出重定向:

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

使用stdin与其配合使用:

import subprocesschild1 = 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中subprocess这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

进程 标准 模块 输出 运行 个子 参数 命令 结果 学习 内容 函数 文本 方法 知识 知识点 程序 建子 管理 不同 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 云南咖啡 喔噻互联网科技有限公司 互联网科技公司简介 广州大一互联网络科技有限公司 互联网科技公司税收优惠 大白互联网科技 互联网科技公司名称 滨湖区互联网智能科技产品供应 广州慧亚互联网科技怎么样 注册互联网科技公司经营范围大全 互联网科技研发水平 中国科技创新与世界互联网大会 企晟互联网信息科技有限公司 怎样加入科技互联网 科技和互联网行业的特点 互联网科技和医药行业 数字科技和互联网金融哪个好 互联网科技大佬云集 黑龙江互联网科技公司 科技发展第三阶段互联网时代 厦门中拓互联网络科技有限公司 互联网科技有限公司图片 成都互联网科技公司 上海卓越科技 互联网 科技大学互联网专业好不好 云创客互联网科技公司 天津腾达互联网科技有限公司 深圳艾果互联网通讯科技 互联网科技和医药行业 科技互联网公司两年变化
0