zoukankan      html  css  js  c++  java
  • commands模块【转】

    https://www.cnblogs.com/wjoyxt/p/5087951.html

    要获得shell命令的输出只需要`cmd`命令就可以了,

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

    看一下三个函数:
    1). commands.getstatusoutput(cmd)
    用os.popen()执行命令cmd, 然后返回两个元素的元组(status, result),其中 status为int类型,result为string类型。cmd执行的方式是{ cmd ; } 2>&1, 这样返回结果里面就会包含标准输出和标准错误.


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


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

    看一下这些函数使用的例子:

    >>> import commands

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

    (0, '/bin/ls')

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

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

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

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

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

    '/bin/ls'

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

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

    #!/usr/bin/python
    #coding:utf-8
    import os,sys,commands
    
    def openfile():
        grains = {}
        _open_file=65533
        try:
            getulimit=commands.getstatusoutput('source /etc/profile;ulimit -n')
        except Exception,e:
            pass
        if getulimit[0]==0:
           _open_file=int(getulimit[1])
        grains['max_open_file'] = _open_file
        return grains
  • 相关阅读:
    strutr2运行流程
    ConcurrentHashMap原理分析
    面试题集锦
    jvm如何知道那些对象需要回收
    java中volatile关键字的含义
    关于Java类加载双亲委派机制的思考(附一道面试题)
    new关键字和newInstance()方法的区别
    Java中创建对象的5种方式 &&new关键字和newInstance()方法的区别
    字符串中第一个只出现一次的字符
    二进制数中1的个数
  • 原文地址:https://www.cnblogs.com/wangbaihan/p/9262178.html
Copyright © 2011-2022 走看看