python执行使用shell命令方法分享


Posted in Python onNovember 08, 2017

1. os.system(shell_command)

直接在终端输出执行结果,返回执行状态0,1

此函数会启动子进程,在子进程中执行command,并返回command命令执行完毕后的退出状态,如果command有执行内容,会在标准输出显示。这实际上是使用C标准库函数system()实现的。

缺点:这个函数在执行command命令时需要重新打开一个终端,并且无法保存command命令的执行结果

os.system('cat /etc/passwdqc.conf')

2. os.popen()

打开一个与command进程之间的管道。这个函数的返回值是一个文件对象,可以读或者写(由mode决定,mode默认是'r')。如果mode为'r',可以使用此函数的返回值调用read()来获取command命令的执行结果。

os.system(cmd)或os.popen(cmd),前者返回值是脚本的退出状态码,后者的返回值是脚本执行过程中的输出内容。实际使用时视需求情况而选择。

tmp = os.popen('ls -l *').readlines()

3. commands.getstatusoutput(command)

使用commands.getstatusoutput(command)函数执行command命令并返回一个元组(status,output),分别表示command命令执行的返回状态和执行结果。对command的执行实际上是按照{command;} 2>&1的方式,所以output中包含控制台输出信息或者错误信息。output中不包含尾部的换行符。

(status, output) = commands.getstatusoutput("netstat -apn|grep {0} | awk '{{{1}}}' |xargs echo ".format(port, 'print $7'))
rr = re.compile(r'(\d+)/java')

op = rr.findall(output) #查找所有包含'java'的单词 

for i in range(len(op)):
  os.system("kill -9 {0}".format(op[i]))

#按照标志杀进程
os.system("ps -ef | grep {0} | awk '{{{1}}}' | xargs kill -9".format(key, 'print $2'))

实际使用时感觉 commands.getstatusoutput(command)用起来比较方便,根据实际要实现的功能使用吧

总结

以上就是本文关于python执行使用shell命令方法分享的全部内容,希望对大家有所帮助,感兴趣的朋友可以继续参阅本站:python通过socket实现多个连接并实现ssh功能详解、Python基础练习之用户登录实现代码分享、Python入门之三角函数全解【收藏】等,有什么问题可以随时留言,小编会及时回复大家的。感谢朋友们对本站的支持!

Python 相关文章推荐
Python中的map、reduce和filter浅析
Apr 26 Python
python回溯法实现数组全排列输出实例分析
Mar 17 Python
用Python的SimPy库简化复杂的编程模型的介绍
Apr 13 Python
Python中如何获取类属性的列表
Dec 26 Python
python实现自动网页截图并裁剪图片
Jul 30 Python
基于pytorch 预训练的词向量用法详解
Jan 06 Python
python中urllib.request和requests的使用及区别详解
May 05 Python
Python分类测试代码实例汇总
Jul 23 Python
python3.7中安装paddleocr及paddlepaddle包的多种方法
Nov 27 Python
Python 找出英文单词列表(list)中最长单词链
Dec 14 Python
如何用Python和JS实现的Web SSH工具
Feb 23 Python
django如何自定义manage.py管理命令
Apr 27 Python
python通过socket实现多个连接并实现ssh功能详解
Nov 08 #Python
Python基础练习之用户登录实现代码分享
Nov 08 #Python
python实现简单中文词频统计示例
Nov 08 #Python
python中如何正确使用正则表达式的详细模式(Verbose mode expression)
Nov 08 #Python
python如何使用正则表达式的前向、后向搜索及前向搜索否定模式详解
Nov 08 #Python
Python入门之三角函数全解【收藏】
Nov 08 #Python
Python入门之三角函数tan()函数实例详解
Nov 08 #Python
You might like
《OVERLORD》手游英文版即将上线 手机上也能扮演骨王
2020/04/09 日漫
PHPLog php 程序调试追踪工具
2009/09/09 PHP
thinkphp验证码显示不出来的解决方法
2014/03/29 PHP
php中使用gd库实现下载网页中所有图片
2015/05/12 PHP
tp5 实现列表数据根据状态排序
2019/10/18 PHP
超级24小时弹窗代码 24小时退出弹窗代码 100%弹窗代码(IE only)
2010/06/11 Javascript
javascript的日期对象、数组对象、二维数组使用说明
2014/12/22 Javascript
基于JavaScript短信验证码如何实现
2016/01/24 Javascript
url中的特殊符号有什么含义(推荐)
2016/06/17 Javascript
JS随机打乱数组的方法小结
2016/06/22 Javascript
jQuery实现Table表格隔行变色及高亮显示当前选择行效果示例
2017/02/14 Javascript
vue模板语法-插值详解
2017/03/06 Javascript
jQuery鼠标悬停内容动画切换效果
2017/04/27 jQuery
vue组件父子间通信之综合练习(聊天室)
2017/11/07 Javascript
vue项目中的webpack-dev-sever配置方法
2017/12/14 Javascript
node结合swig渲染摸板的方法
2018/04/11 Javascript
详解webpack import()动态加载模块踩坑
2018/07/17 Javascript
Nodejs处理异常操作示例
2018/12/25 NodeJs
VUE渲染后端返回含有script标签的html字符串示例
2019/10/28 Javascript
使用原生JS实现火锅点餐小程序(面向对象思想)
2019/12/10 Javascript
[01:51]2014DOTA2西雅图邀请赛 MVP 外卡赛black场间采访
2014/07/09 DOTA
[54:25]Ti4 循环赛第三日LGD vs MOUZ
2014/07/12 DOTA
实例讲解Python中函数的调用与定义
2016/03/14 Python
python条件变量之生产者与消费者操作实例分析
2017/03/22 Python
django中瀑布流写法实例代码
2019/10/14 Python
美国非常受欢迎的Spa品牌:Bliss必列斯
2018/04/10 全球购物
澳大利亚优质葡萄酒专家:Vintage Cellars
2019/01/08 全球购物
彪马荷兰官网:PUMA荷兰
2019/05/08 全球购物
介绍一下RMI的基本概念
2016/12/17 面试题
竞聘上岗演讲稿范文
2014/01/10 职场文书
企业年会主持词
2014/03/27 职场文书
大学新生军训方案
2014/05/03 职场文书
法人授权委托书公证范本
2014/09/14 职场文书
关于观后感的作文
2015/06/18 职场文书
初中开学典礼新闻稿
2015/07/17 职场文书
SpringBoot整合Minio文件存储
2022/04/03 Java/Android