python中shell执行知识点
2020-05-07 04:05
44 查看
os.system
system方法会创建子进程运行外部程序,方法只返回外部程序的运行结果。这个方法比较适用于外部程序没有输出结果的情况。
import os os.system('ls')
commands.getstatusoutput
使用commands模块的getoutput方法,这种方法同popend的区别在于popen返回的是一个文件句柄,而本方法将外部程序的输出结果当作字符串返回,很多情况下用起来要更方便些。
主要方法:
- commands.getstatusoutput(cmd) 返回(status, output)
- commands.getoutput(cmd) 只返回输出结果
- commands.getstatus(file) 返回ls -ld file的执行结果字符串,调用了getoutput,不建议使用此方法
当需要得到外部程序的输出结果时,本方法非常有用。比如使用urllib调用Web API时,需要对得到的数据进行处理。os.popen(cmd) 要得到命令的输出内容,只需再调用下read()或readlines()等 如a=os.popen(cmd).read()
import os ls = os.popen('ls') print ls.read()
commands.getstatusoutput
使用commands模块的getoutput方法,这种方法同popend的区别在于popen返回的是一个文件句柄,而本方法将外部程序的输出结果当作字符串返回,很多情况下用起来要更方便些。
主要方法:
- commands.getstatusoutput(cmd) 返回(status, output)
- commands.getoutput(cmd) 只返回输出结果
- commands.getstatus(file) 返回ls -ld file的执行结果字符串,调用了getoutput,不建议使用此方法
import commands commands.getstatusoutput('ls -lt') # 返回(status, output)
subprocess.call
根据Python官方文档说明,subprocess模块用于取代上面这些模块。有一个用Python实现的并行ssh工具―mssh,代码很简短,不过很有意思,它在线程中调用subprocess启动子进程来干活。
from subprocess import call call(["ls", "-l"])
import shlex, subprocess def shell_command(cmd, timeout) : data = {"rc":False, "timeout":False, "stdout":"", "stderr":""} try : process = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) try: outs, errs = process.communicate(timeout=timeout) data["stdout"] = outs.decode("utf-8") data["stderr"] = errs.decode("utf-8") data["rc"] = True except subprocess.TimeoutExpired : process.kill() outs, errs = process.communicate() data["rc"] = False data["stdout"] = outs.decode("utf-8") data["stderr"] = "timeout" data["timeout"] = True except Exception as e : data["rc"] = False data["stderr"] = e finally : return data
到此这篇关于python中shell执行知识点的文章就介绍到这了,更多相关python shell 执行内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
您可能感兴趣的文章:
相关文章推荐
- python执行shell命令
- Python执行shell脚本的几种方式(最好用subprocess.Popen来替代os.system)
- Python执行shell脚本
- python 执行shell命令无法获取返回值的解决方法
- python 执行shell命令的类
- 【python】python执行shell命令或脚本
- 在python中执行shell命令,并以字符串形式返回命令执行结果
- python执行shell命令的几种方法
- python中执行shell命令的几种方式
- python中执行shell命令
- Python免秘钥ssh远程登录执行命令and本地执行shell命令
- python 知识点:反射 之 getattr()实现以字符串形式导入模块和执行函数
- python调用其它脚本:pig,python,shell等等 (如何获取pig脚本执行的返回值)
- python-模块间的导入与os.system('xxx')的shell命令执行
- IPython下执行shell命令-魔力函数(alias store rehash)- 千月的python linux 系统管理指南学习笔记(6)
- python执行shell命令的四种方法
- 配置在python shell中执行自定义函数
- python2.7执行shell脚本
- python执行shell命令
- python调用其它脚本:pig,python,shell等等 (如何获取pig脚本执行的返回值)