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

admin3年前云主机65

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...

「服务器的劣势:如何避免系统崩溃?」

正文:一、软硬件升级淘汰旧设备服务器是由硬件和软件所组成的,任何一处问题都有可能导致整个系统崩溃。因此,保持软硬件设备的更新是避免服务器崩溃的首要原则。新硬件的速度、容量和功能,以及新软件的安全、性能...

亿速云香港vps怎么样

亿速云香港VPS怎么样对于需要建立网站或进行在线业务的个体或企业,选择合适的VPS服务是至关重要的。亿速云香港VPS是目前市场上备受关注的选择之一,本文将就其产品质量、服务性能和用户评价等方面进行探讨...

个人网站怎么备案

文章格式: 个人网站怎么备案什么是备案备案是指在中国国家互联网信息办公室进行网站主体信息登记和备案管理,目的是加强互联网信息内容的管理和服务,保障公民的合法权益。所有在中国大陆境内提供互联网信息服务的...

美国cn2gia独立服务器(美国cn2 gia服务器)

本文目录:1、美国服务器哪家好?有没有性能比较好的推荐?2、海外国家服务器租用CN2线路 GT线路 GIA线路的区别是什么?3、如果说要租用美国服务器的,要选择什么线路的比较好?4、美国CN2服务器国...

虚拟机中centos无法上网(虚拟机中centos无法ping百度)

首先是进入/etc/sysconfig/network-scripts/目录下:命令:cd /etc/sysconfig/network-scripts正文内容: 然后查看目录下的文件中有一个i...