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

admin3年前云主机29

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

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

相关文章

云服务器怎么建立网站

云服务器与网站建立随着互联网的不断发展,越来越多的人选择使用云服务器来建立自己的网站。云服务器相对于传统的服务器有许多优点,比如能够根据需要弹性扩容,提高服务器的稳定性和可靠性。那么,怎样才能在云服务...

并行计算技术的跨平台应用研究

并行计算技术是一种通过同时执行多个计算任务,提高计算机系统性能的技术,其在各个领域具有广泛的应用。本文主要探讨并行计算技术在跨平台应用方面的研究进展。首先介绍了并行计算技术的概念和背景,引出了文章的主...

免费申请个人主页

什么是个人主页个人主页是一个由个人设计和维护的网页,旨在向他人展示自己的个人信息、兴趣爱好、技能和成果等信息,并让人们更好地了解和联系自己。为什么需要个人主页在当今数字化时代,人们越来越注重个人品牌的...

云端全端:智能管理、高效协作、安全可控

在当今信息化浪潮的背景下,云端全端成为了越来越多企业采用的数字化管理方式。它能够提供智能管理、高效协作和安全可控等多重优势,进一步提高企业的生产效率和业务竞争力。本文将从四个主要方面对云端全端进行详细...

photonvps怎么样

PhotonVPS是一家怎么样的虚拟专用服务器提供商?PhotonVPS是一家提供虚拟专用服务器(VPS)的服务商,由PhoenixNAP数据中心于2008年创立。该公司是美国洛杉矶地区最大的VPS供...

清空Linux DNS缓存,高效清除DNS缓存指南

一、DNS缓存概述1、DNS缓存的基本概念DNS(Domain Name System)系统是互联网上一个重要的组成部分,它将域名转换为IP地址。域名服务器在响应查询时,会将最近查询的结果缓存在本地内...