返回顶部
首页 > 资讯 > 后端开发 > Python >python之commands模块(执行
  • 500
分享到

python之commands模块(执行

模块pythoncommands 2023-01-31 02:01:19 500人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

commands模块用于执行linux shell命令,要获得shell命令的输出只需要在后面参数写入('命令')就可以了。需要得到命令执行的状态则需要判断$?的值, 在python中有一个模块commands也很容易做到以上的效果。看一下

commands模块

用于执行linux shell命令,要获得shell命令的输出只需要在后面参数写入('命令')就可以了。

需要得到命令执行的状态则需要判断$?的值, 在python中有一个模块commands也很容易做到以上的效果。


看一下三个函数:
1). commands.getstatusoutput(命令)

执行shell命令, 返回两个元素的元组tuple(status, result),status为int类型,result为string类型。

cmd命令的执行方式是{ cmd ; } 2>&1, 故返回结果包含标准输出和标准错误.

>>> import commands

>>> commands.getstatusoutput('ls /bin/ls')

(0, '/bin/ls')

>>> commands.getstatusoutput('pwd')  

(0, '/home/test')  

>>> commands.getstatusoutput('cat /bin/junk')

(256, 'cat: /bin/junk: No such file or directory')

>>> commands.getstatusoutput('/bin/junk')

(256, 'sh: /bin/junk: not found')


2). commands.getoutput(cmd)
只返回执行的结果, 忽略返回值.

>>> commands.getoutput('ls /bin/ls')

'/bin/ls'


3). commands.getstatus(file) #现已被弃用
返回ls -ld file执行的结果.

>>> commands.getstatus('/bin/ls')    #该函数已被Python丢弃,不建议使用,它返回 ls -ld file 的结果(String)(返回结果太奇怪了,难怪被丢弃)

'-rwxr-xr-x 1 root 13352 Oct 14 1994 /bin/ls'


例 1 :

获取系统最大文件描述符

#!/usr/bin/python 

import os,sys,commands 

  

_open_file=65533 

try: 

    getulimit=commands.getstatusoutput('source /etc/profile;ulimit -n')

except Exception,e:

    pass

if getulimit[0]==0:

    host_open_file=int(getulimit[1])

if host_open_file = _open_file:

    print "max_open_file is ok"


例 2 :

下面的一个脚本利用commands模块检测磁盘使用率,标识出大于10%的磁盘(百分比可根据实际情况调整,一般设为90%,本例为了更好的说明情况,设为10%):


#!/usr/bin/python

import commands  

  

threshold = 10  

flag = False  

  

title=commands.getoutput("df -h|head -1")  

  

'''

Check sda disk space usage like below fORMat

'''  

  

chkDiskList=commands.getoutput("df -h|grep sda").split('\n')  

usedPercents=commands.getoutput("df -h|grep sda|awk '{print $5}'|grep -Eo '[0-9]+'").split('\n')  

  

for i in range(0,len(usedPercents)):  

  if int(usedPercents[i]) >= threshold:  

    chkDiskList[i] += '    ----Caution!!! space usage >= ' + str(threshold)  

    flag = True  

  

'''

Check disk space usage like below format: 

'''        

  

          

chkDiskList_2=commands.getoutput("df -h|grep -v sda|grep -v tmp|grep -v system").split('\n')  

usedPercents_2=commands.getoutput("df -h|grep -v map|grep -v sda|grep -v tmp|grep -v system|awk '{print $4}'|grep -Eo '[0-9]+'").split('\n')  

  

for i in range(0,len(usedPercents_2)):   

  if int(usedPercents_2[i]) >= threshold:  

    chkDiskList_2[i*2 + 1] += '    ----Caution!!! space usage >= ' + str(threshold)  

    flag = True  

  

if flag == True:  

  #combine tile, chkDiskList, chkDisklist_2  

  result = [title,]  

  result.extend(chkDiskList)  

  result.extend(chkDiskList_2)  

  for line in result:  

    print line  



--结束END--

本文标题: python之commands模块(执行

本文链接: https://lsjlt.com/news/186465.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • python之commands模块(执行
    commands模块用于执行Linux shell命令,要获得shell命令的输出只需要在后面参数写入('命令')就可以了。需要得到命令执行的状态则需要判断$的值, 在Python中有一个模块commands也很容易做到以上的效果。看一下三...
    99+
    2023-01-31
    模块 python commands
  • python之commands模块
    要获得shell命令的输出只需要`cmd`命令就可以了,需要得到命令执行的状态则需要判断$的值, 在Python中有一个模块commands也很容易做到以上的效果.看一下三个函数:1). commands.getstatusoutput(c...
    99+
    2023-01-31
    模块 python commands
  • Python模块 os commands
    os模块  在自动化运维和测试中,经常需要查找操作文件,比如说查找配置文件(从而读取配置文件的信息),查找测试报告(从而发送测试报告邮件),经常要对大量文件和大量路径进行操作,对于python而言这就需要依赖于os模块。下面就学习下os模块...
    99+
    2023-01-31
    模块 Python commands
  • Python2.x利用commands模块执行Linux shell命令
    用Python写运维脚本时,经常需要执行linux shell的命令,Python中的commands模块专门用于调用Linux shell命令,并返回状态和结果,下面是commands模块的3个主要函数:...
    99+
    2022-06-04
    模块 命令 commands
  • python commands模块的适用方式是什么
    这篇文章给大家分享的是有关python commands模块的适用方式是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。commands模块的适用commands模块是python的内置模块,他共有三...
    99+
    2023-06-29
  • python SSH模块登录,远程机执行
    用python SSH模块登录,并在远程机执行shell命令 (在CentOS 7 环境试验成功, Redhat 系列应该是兼容的。) 先安装必须的模块 1 2 3 4 5 # yum install python-dev # yu...
    99+
    2023-01-31
    模块 python SSH
  • 怎么执行OSGi模块化
    这篇文章将为大家详细讲解有关怎么执行OSGi模块化,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。OSGi模块化 - Lars Vogel,Simon Scholz(c)2008,2...
    99+
    2023-06-03
  • Python时间模块之datetime模块
    目录 简介 函数介绍及运用 date:日期类 1.获取当前时间  2.日期对象的属性 3.date类中时间和时间戳的转换: 4.修改日期使用replace方法  time:时间类  time类操作 datetime:日期时间类 timede...
    99+
    2023-09-12
    python datetime python 日期时间
  • Python模块学习之IPy模块
    IP地址规划是网络设计中非常重要的一个环节,规划的好坏会直接影响路由协议算法的效率,包括网络性能、可扩展性等方面,在这个过程当中,免不了要计算大量的IP地址,包括网段、网络掩码、广播地址、子网数、IP类型等。Python提供了一个强大的第...
    99+
    2023-01-31
    模块 Python IPy
  • python之MySQLdb模块
    防伪码:忘情公子著  MySQLdb是用来通过python控制mysql数据库的一个模块。  在说这个模块之前,我们先来想一下在命令行模式下操作mysql数据库的步骤,一般来说分为三步:...
    99+
    2024-04-02
  • python之re模块
    python 中使用正则表达式需要引入re模块,用来匹配处理字符串  如: import re #第一步,要引入re模块 a = re.findall("匹配规则", "要匹配的字符串") #第二步,调用模块函数 以列表形式返回匹配到的字...
    99+
    2023-01-30
    模块 python
  • python之shutil模块
    shutil:高级的 文件、文件夹、压缩包 处理模块 shutil.copyfileobj(fsrc, fdst[, length])(copyfileobj方法只会拷贝文件内容)将文件内容拷贝到另一个文件中 import shu...
    99+
    2023-01-30
    模块 python shutil
  • python之os模块
    #OS模块 #os模块就是对操作系统进行操作,使用该模块必须先导入模块:import os #getcwd() 获取当前工作目录(当前工作目录默认都是当前文件所在的文件夹) #chdir()改变当前工作目录 #操作时如果书写完整的路径则不...
    99+
    2023-01-30
    模块 python os
  • python模块之collections
    计数器 Counter 计数元素迭代器 elements() 计数对象拷贝 copy() 计数对象清空 clear() from collections import Counter #import collection...
    99+
    2023-01-30
    模块 python collections
  • Python模块之pexpect
    pexpect是一个用来启动子程序并对其进行自动控制的 Python 模块。pexpect 可以用来和像 ssh、passwd、telnet 、rsync等命令行程序进行自动交互下面是我用pexpect写的一个脚本,是用来执行远程主机命令,...
    99+
    2023-01-31
    模块 Python pexpect
  • python之selectors模块
      selectors模块是在python3.4版本中引进的,它封装了IO多路复用中的select和epoll,能够更快,更方便的实现多并发效果。  官方文档见:https://docs.python.org/3/library/...
    99+
    2023-01-31
    模块 python selectors
  • python模块之configparse
    configparser configParser 模块用于操作配置文件 注:Parser汉译为“解析”之意。 配置文件的格式与windows ini文件类似,可以包含一个或多个节(section),每个节可以有多个参数(键=值或者键:值)...
    99+
    2023-01-31
    模块 python configparse
  • python模块之base64
    base64模块提供了在二进制数据和可打印ASCII字符间编解码的功能,包括RFC3548中定义的Base16, Base32, Base64, Ascii85, Base85等编码。 RFC3548中定义的编码适用于将二进制数据编码后,...
    99+
    2023-01-31
    模块 python
  • python模块之subprocess
    subprocess.run() 运行并等待args参数指定的指令完成,返回CompletedProcess实例。 参数:(*popenargs, input=None, capture_output=False, timeout=Non...
    99+
    2023-01-31
    模块 python subprocess
  • python模块之shutil
    shutil模块提供了一些针对文件和目录的高级操作,主要是拷贝、移动。对于单个文件的操作,还可参考os模块 Warning:即使是高级别的拷贝函数(shutil.copy(),shutil.copy2())也不能拷贝所有的文件元数据。意思...
    99+
    2023-01-31
    模块 python shutil
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作