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

admin3年前云主机39

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命令)》来自互联网同行内容,若有侵权,请联系我们删除!

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

相关文章

个人网站怎么挣钱

个人网站怎么挣钱如果你拥有一个个人网站,并且想通过它来赚钱,那么你需要了解一些方式和方法。本文将介绍一些常见的方法,帮助你通过个人网站赚取收入。1. 广告收入在个人网站上发布广告是一种常见的赚钱方式。...

PHPCMS要购买么 (phpcms 还有人用吗)

php零基础到就业直播视频课:进入学习API 文档、设计、调试、自动化测试一体化协作工具:点击使用PHPCMS要购买么?PHPCMS不需要购买,PHPCMS是有免费版和收费版的,两个版本的区别是收费版...

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

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

企业上云优惠

什么是企业上云优惠随着越来越多的企业开始意识到云计算的优势并采取相关措施,许多云服务提供商开始推出企业上云优惠计划,目的是帮助企业更轻松地采用云计算,降低成本、提高效率。企业上云优惠的优势1. 成本优...

探访ren域名的诞生与演变:从历史到现在的故事

本篇文章将带领读者探访ren域名的诞生与演变,从历史到现在的故事,为读者提供了背景信息和引发读者兴趣的内容,旨在探究ren域名在现代互联网中的地位和发展前景。一、ren域名的前世今生本部分主要从ren...

伪静态设置教程

伪静态设置教程在网站建设中,为了优化用户体验和提升搜索引擎排名,需要进行伪静态设置。伪静态是指通过修改URL的形式,使其看起来像静态URL的形式,但实际上是动态生成的。以下是详细的伪静态设置教程。步骤...