首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

subprocess模块

从Python 2.4开始,Python引入subprocess模块来管理子进程,以取代一些旧模块的方法:如 os.system、os.spawn*、os.popen*、popen2....常用subprocess方法示例: #执行命令,返回执行状态,0或非0 >>> res = subprocess.call(["df","-h"]) Filesystem      Size  Used.../data /dev/sdb        1.8T  696G  1.1T  40% /wdc >>> res 0 #接收字符串命令,返回元组形式,第一个元素是执行状态,第二个是执行结果 >>> subprocess.getstatusoutput...sda3        91G   29G   58G  33% /data\n/dev/sdb        1.8T  696G  1.1T  40% /wdc\n' #上面那些方法,底层都是封装的subprocess.Popen...#例子 >>> p = subprocess.Popen("df -h",stdin=subprocess.PIPE,stdout=subprocess.PIPE,shell=True) >>> p.stdout.read

73480
您找到你想要的搜索结果了吗?
是的
没有找到

python模块--subprocess

subprocess模块                                                                                                                                      ...    subprocess模块用于帮助我们在python代码中去执行一些系统命令,在执行python程序时,该模块会创建出一个子进程,来运行外部程序。     ...该模块拥有多个方法,具体如下: subprocess.call() 直接打印系统命令的执行结果,如果执行成功,返回状态码为0,否则为1,例如: #执行成功 import subprocess CALL1...直接打印系统命令的执行结果,使用方法与subprocess.call()相同,只不过该函数会检测返回状态码,如果为1,则会抛出subprocess.CalledProcessError错误,例如: import...错误,例如: import subprocess #执行成功 CHECK_OUTPUT1 = subprocess.check_output('ping 127.0.0.1 -n 1',shell=True

63910

Python之Subprocess模块

前言 其实有一个模块也支持执行系统命令,那个模块就是sys.system,但他执行系统命令会直接通过主进程去执行命令,那假如,该命令的执行需要耗费一个小时,那么主进程会卡一个小时,而不会去干别的事,这样就会导致程序的运行效率低下...如果由subprocess去执行系统命令的时候并不会让主进程去执行,而是主进程会开辟出一个子进程去执行,并不会影响到主进程的运行,主进程该干嘛就干嘛,那么又有个问题,大家都知道进程之间的内存空间是独立的...subprocess基本工作原理: ?...subprocess简单案例 import subprocess # 创建一个子进程去执行系统命令 obj=subprocess.Popen( 'ps -ef', # 执行的系统命令...(必须是字符串格式) shell=True, # 指定命令解释器来解释执行的这条命令 stdout=subprocess.PIPE, # 将执行的正确结果丢到管道(共享内存空间

63110

Python模块学习:subprocess模块详解

一.subprocess模块subprocess是Python 2.4中新增的一个模块,它允许你生成新的进程,连接到它们的 input/output/error 管道,并获取它们的返回(状态)码。...这个模块的目的在于替换几个旧的模块和方法,如:os.systemos.spawn*1.subprocess模块中的常用函数函数 描述subprocess.run()Python 3.5中新增的函数。...subprocess.call(),subprocess.getoutput()等上面列出的其他函数来使用subprocess模块的功能;3.subprocess.run()、subprocess.call...下面我们来做个总结:首先应该知道的是,Python2.4版本引入了subprocess模块用来替换os.system()、os.popen()、os.spawn*()等函数以及commands模块;也就是说如果你使用的是...Python 2.4及以上的版本就应该使用subprocess模块了。

29940

python的subprocess模块

1 os与commands模块 ​ 2 subprocess模块 ​ 3 subprocess.Popen类 我们几乎可以在任何操作系统上通过命令行指令与操作系统进行交互,比如Linux平台下的shell...但是从Python 2.4开始官方文档中建议使用的是subprocess模块,所以os模块和commands模块的相关函数在这里只提供一个简单的使用示例,我们重要要介绍的是subprocess模块。...subprocess模块提供了一种一致的方法来创建和处理附加进程,与标准库中的其它模块相比,提供了一个更高级的接口。...用于替换如下模块: os.system() , os.spawnv() , os和popen2模块中的popen()函数,以及 commands(). subprocess模块中的常用函数 函数 描述...Python 2.4及以上的版本就应该使用subprocess模块了。

2.9K20

python模块subprocess类与常量

常量 subprocess.DEVNULL:可传递给stdin, stdout, stderr参数的特殊值,意味着将使用特殊文件os.devnull重定向输入输出 subprocess.PIPE:可传递给...stdin, stdout, stderr参数的特殊值,意味着使用管道重定向输入输出 subprocess.STDOUT:可传递给stderr参数的特殊值,表示重定向标准错误到标准输出 Popen 在一个新的进程中执行子程序...如果子进程在timeout后没有终止,抛出TimeoutExpired异常,但子进程并未kill掉,一个良好的应用应该kill掉子进程并结束交互: proc = subprocess.Popen(......如果未捕获标准错误返回None 方法 check_returncode():如果returncode非0,抛出CalledProcessError异常 异常 subprocess.SubprocessError...subprocess模块的异常基类 subprocess.TimeoutExpired 子进程执行超时。

2.4K10

subprocess 使用总结

最近在项目中有使用 subprocess 这个模块,它的功能主要是fork一个子进程,并且运行一个外部的程序。说白了就是可以用这个模块可以根据输入的字符串执行对应的系统 shell 指令。...项目中正好需要执行一段系统shell指令,所以就选用了这个模块subprocess模块中只定义了一个类: Popen。可以使用Popen来创建进程,并与进程进行复杂的交互。...它的构造函数如下: subprocess.Popen(args, bufsize=0, executable=None, stdin=None, stdout=None, stderr=None, preexec_fn...subprocess.PIPE 表示一个可以被用于Popen的stdin 、stdout 和stderr 3个参数的特输值,表示需要创建一个新的管道。...subprocess.STDOUT 表示一个可以被用于 Popen 的 stderr 参数的输出值,表示子程序的标准错误汇合到标准输出。

1.7K30

python中的subprocess

python2.7 源码中的注释(由于能力有限,翻译的不太准确): 这个模块允许您开启进程、连接输入、输出和错误的管道,并获取他们的返回代码。...这个模块计划替代一些旧代码,如: os.system、os.spawn*、os.Popen、popen2.* 、commands.* 关于subprocess模块可以用来取代这些模块和功能在下面可以找到...同时文件对象标准输出、标准输入、标准错误的换行符属性,不会被communicate()模块所更新。...空值表示进程还没有结束,一个负值‘-N’表示子进程被信号N所结束(仅unix支持) 用subprocess模块取代旧函数: =======================================...注意: 如果没有找到执行程序,所有在本节中的函数都有可能以静默状态失败;这个模块会抛出OSError异常 在以下的例子中, 我们假设subprocess 模块是"from subprocess import

1.6K30

解决subprocess.CalledProcessError: Command ‘‘

subprocess模块执行外部命令时,有时候会遇到​​CalledProcessError​​的异常,这个异常表示执行的命令返回一个非零的退出状态码。...子进程模块可以帮助我们在Python程序中启动、控制和与子进程进行数据交换。 subprocess模块中最常用的函数是run()、call()和Popen()。...subprocess模块也提供了一些其他函数和常量,用于设置和处理子进程的其他参数和属性,例如设置执行路径、设置环境变量、设置超时时间等。...使用subprocess模块可以方便地调用外部程序、执行系统命令、进行并行处理等。它在很多场景中都非常有用,例如执行外部命令、调用系统工具、进行系统管理等。...然而,由于涉及到操作系统的底层调用,使用subprocess模块时需要注意安全性、错误处理和兼容性,以确保程序的稳定性和可靠性。

47160

subprocess实用手册

背景 python执行操作系统的命令,如python执行shell命令 subprocess模块主要用于创建子进程,并连接它们的输入、输出和错误管道,获取它们的返回状态。...通俗地说就是通过这个模块,你可以在Python的代码里执行操作系统级别的命令,比如“ipconfig”、“du -sh”等等。...操作 引用 python自带subprocess包,直接import引入即可 import subprocess 常用方法 需要注意2.X版本和3.X版本 3.X版本 推荐使用run方法,3.5版本才新增该方法...其值可以是subprocess.PIPE、subprocess.DEVNULL、一个已经存在的文件描述符、已经打开的文件对象或者None。subprocess.PIPE表示为子进程创建新的管道。...1 root root 1, 3 Jan 23 16:23 /dev/null\n') >>> subprocess.run("python --version", stdout=subprocess.PIPE

1K20
领券