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

admin3年前云主机28

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、企业邮箱登陆地址忘记怎么办.2、阿里云企业邮箱网页版可以登录,但是outlook上面无法登陆3、企业邮箱怎么登录?4、企业邮箱登录入口在哪?5、企业邮箱登陆入口企业邮箱登陆地址忘记怎么办...

多线高防服务器是什么?租用扬州多线高防服务器多少钱?

用户们通常会提出自己的疑惑,既然同时有BGP高防服务器和普通高防服务器了,那么多线高防服务器是什么?其实,BGP高防服务器只是对使用BGP线路的高防服务器的称呼,而多线高防服务器是对线程的一种归类,也...

国外云服务器租用怎么防御cc攻击

什么是CC攻击CC攻击全称为“拒绝服务攻击”,是一种旨在通过过多的网络流量使目标服务器无法处理合法请求的攻击行为。攻击者使用大量的机器或代理服务器向目标服务器发送请求,导致服务器超负荷或崩溃。CC攻击...

shopify订单

Shopify订单拥有一家线上商店,对于任何一位商家都是一个巨大的挑战。然而,如果你选择使用 Shopify 这一值得信赖的平台,你将能够完全掌控你的业务并拥有一些业内领先的工具。本文将简要介绍 Sh...