python 模块 commands 执行命令
文章目录
1. 介绍
commands模块是python的内置模块,他共有三个函数,使用help(commands)可以查看到
2. 方法
FUNCTIONS getoutput(cmd) Return output (stdout or stderr) of executing cmd in a shell. getstatus(file) Return output of "ls -ld <file>" in a string. getstatusoutput(cmd) Return (status, output) of executing cmd in a shell.
2.1 commands.getstatusoutput(cmd)
返回一个元组(status,output)
status代表的shell命令的返回状态,如果成功的话是0;output是shell的返回的结果
用os.popen()执行命令cmd, 然后返回两个元素的元组(status, result),其中 status为int类型,result为string类型。cmd执行的方式是{ cmd ; } 2>&1, 这样返回结果里面就会包含标准输出和标准错误.
>>> import commands >>> status, output = commands.getstatusoutput("ls") >>> print status 0 >>> print output atom: bookstore cookie.py~
2.2 commands.getstatus(file)
只返回执行的结果, 忽略返回值.返回ls -ld file执行的结果.
commands.getstatus(file)
注意:该函数已被python丢弃,不建议使用
2.3 commands.getoutput(cmd)
只返回执行的结果, 忽略返回值.
>>> print commands.getoutput("ls") atom: bookstore cookie.py~
3 练习
#!/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 print grains return grains openfile()
输出:
$ python com1.py {'max_open_file': 1024}
参考: