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

admin3年前云主机34

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

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

相关文章

以色列特拉维夫市云服务器有什么用途?

以色列特拉维夫市云服务器有以下用途:托管网站-以色列特拉维夫市云服务器可以托管您的网站,并提供高度可靠和稳定的基础设施,确保您的网站能够随时在线。数据备份和存储-以色列特拉维夫市云服务器可以作为数据备...

海外与国内服务器:速度与稳定性的博弈

一、网络架构网络架构是指网络模式的设计,它决定了网络的稳定性和速度。国内服务器与海外服务器在网络架构上存在巨大的差异。国内服务器的网络架构相对稳定,由于中国大陆特殊的互联网管制,国内网络造就了类似于“...

云服务器和虚拟主机一样吗

云服务器和虚拟主机一样吗引言云服务器和虚拟主机都是如今常见的网站托管方式。但是,很多人对两者之间的关系和区别并不清楚。本文将介绍云服务器和虚拟主机的基本概念和相似点,以及它们之间的不同之处。云服务器和...

使用美国轻量化云服务器建站有哪些好处

轻量化云服务器的使用及其优势轻量化云服务器是一种理想的建站解决方案,它不仅可以降低建站的成本,还可以提高网站的性能和可靠性。在美国,有许多轻量化云服务器供应商提供服务,以下是使用美国轻量化云服务器建站...

狗云DOGYUN优惠码

狗云DOGYUN优惠码随着互联网时代的发展,越来越多的人开始选择云计算服务来存储和处理数据。作为一家国内领先的云计算服务提供商,狗云DOGYUN以其稳定性、安全性、高效性等优势,深受用户的青睐。现在,...

印象云好不好

印象云好不好?印象云是近年来备受热议的一款云存储软件,它以其高效、安全、方便等优点深受用户喜爱,但人们对印象云的评价仍存在很大分歧,那么,印象云好不好呢?我们从以下几个方面来分析。速度快一款好的云存储...