Python调用shell命令(python调用shell命令)

admin3年前云主机87

1.1   os.system(command)

在一个子shell中运行command命令,并返回command命令执行完毕后的退出状态。这实际上是使用C标准库函数system()实现的。这个函数在执行command命令时需要重新打开一个终端,并且无法保存command命令的执行结果。

1.2   os.popen(command,mode)

打开一个与command进程之间的管道。这个函数的返回值是一个文件对象,可以读或者写(由mode决定,mode默认是’r')。如果mode为’r',可以使用此函数的返回值调用read()来获取command命令的执行结果。

os.system(cmd)或os.popen(cmd),前者返回值是脚本的退出状态码,后者的返回值是脚本执行过程中的输出内容。实际使用时视需求情况而选择。

1.3   commands.getstatusoutput(command)

使用commands.getstatusoutput函数执行command命令并返回一个元组(status,output),分别表示command命令执行的返回状态和执行结果。对command的执行实际上是按照{command;} 2>&1的方式,所以output中包含控制台输出信息或者错误信息。output中不包含尾部的换行符。

实例:

>>>import commands

>>> status, output = commands.getstatusoutput('ls -l')

使用subprocess模块可以创建新的进程,可以与新建进程的输入/输出/错误管道连通,并可以获得新建进程执行的返回状态。使用subprocess模块的目的是替代os.system()、os.popen*()、commands.*等旧的函数或模块。

2.1   subprocess.call(["some_command","some_argument","another_argument_or_path"])

subprocess.call(command,shell=True)

实例:

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

2.2   subprocess.Popen(command, shell=True)

如果command不是一个可执行文件,shell=True不可省。

最简单的方法是使用class subprocess.Popen(command,shell=True)。Popen类有Popen.stdin,Popen.stdout,Popen.stderr三个有用的属性,可以实现与子进程的通信。 【站长下载 http://inhv.cn 】

将调用shell的结果赋值给python变量

handle = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE)

实例:

handle = subprocess.Popen('ls -l', stdout=subprocess.PIPE, shell=True)

handle = subprocess.Popen(['ls','-l'], stdout=subprocess.PIPE, shell=True)

handle = subprocess.Popen(args='ls -l', stdout=subprocess.PIPE, shell=True)

print handle.stdout.read()

print handlemunicate()[0]

《Python调用shell命令(python调用shell命令)》来自互联网同行内容,若有侵权,请联系我们删除!

免责声明:本文内容来自用户上传并发布,站点仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。请核实广告和内容真实性,谨慎使用。

相关文章

如何区分独立服务器和VPS服务器?

正文:一、价格独立服务器和VPS服务器之间最明显的差异是它们的价格。独立服务器通常比VPS服务器价格更高,这是由于独立服务器具有更高的资源、更好的性能和更多的控制功能。例如控制面板、IP地址、管理系统...

udp服务器租赁

UDP服务器租赁是什么UDP服务器租赁是一种云计算服务,可以为用户提供高性能和高可用性的UDP协议服务。UDP是一种面向无连接的协议,常用于音视频传输、游戏通讯等场景。在这些场景中,实时性非常重要,因...

Linux服务器上用iScanner删除网页恶意代码的方法(linux服务器怎么用)

第一步:安装首先要确保服务器上已经安装了Ruby复制代码代码如下:#ruby -v //查看ruby的版本信息如果服务器上没有安装,可以通过yum或者apt-get安装rub...

泰国服务器

从泰国服务器了解网络安全与稳定性什么是泰国服务器泰国服务器是指位于泰国的云服务器,其稳定性和速度都比较可信。泰国作为亚洲经济体的一员,其信息科技水平也得到了长足的发展。目前,泰国服务器越来越受到亚洲市...

phpcms怎么不设置水印(phpcms怎么用)

phpcms不设置水印的方法:首先找到water文件夹,并将其删除掉;然后找到“image.class.php”文件中的watermark函数;最后将此函数中“$w_text”参数的值设置为空即可。正...

美国cn2 gt服务器

美国CN2 GT服务器在网络世界中,服务器是数不胜数的。其中,CN2 GT服务器是一个重要的服务器类型,在互联网的科技领域得到了广泛应用。作为一个开发人员,了解CN2 GT服务器的性能和特点,对于我们...