python 中调用shell命令

subprocess模块


根据Python官方文档说明,subprocess模块用于取代上面这些模块。有一个用Python实现的并行ssh工具—mssh,代码很简短,不过很有意思,它在线程中调用subprocess启动子进程来干活。

[python] view plaincopy
在CODE上查看代码片派生到我的代码片
  1. >>> from subprocess import call  
  2. >>> call(["ls", "-l"])  


subprocess与system相比的优势是它更灵活(你可以得到标准输出,标准错误,“真正”的状态代码,更好的错误处理,等..)。我认为使用os.system已过时,或即将过时。

 

#!/usr/bin/env python
#encoding=utf-8import os
from subprocess import call
call(["ls","-l"])path=os.getenv("phone_path")
print os.getenv("phone_path")
call(["adb","root"])
call(["adb","pull","/system/lib64/libteec.so",path+"/ree/client/libteec.so_64"])

可以执行获取环境变量,

执行adb pull命令。

太厉害了。

 

#!/usr/bin/env python
#encoding=utf-8import os
from subprocess import call #通过call调用shell命令
from hashlib import sha1    #计算sha1sum值

call(["ls","-l"])#实现从jenkins环境变量获取值
path=os.getenv("phone_path")
print os.getenv("phone_path")#实现adb pull,环境变量直接引用不用加引号,用+即可
call(["adb","root"])
call(["adb","pull","/system/lib64/libteec.so",path+"/ree/client/libteec.so_64"])#实现adb push
#call(["adb","remount"])
#call(["adb","push",path+"/ree/client/libteec.so_64","/system/lib64/libteec.soa"])#实现adb shell
#call(["adb","root"])
#call(["adb","shell","chmod","-R","777","/system/lib/nutlet_armtz/"])
#call(["adb","shell","./system/lib/nutlet_armtz/nutlet_helloworld"])#计算sha1sum值
def getSha1(filename): #计算sha1sha1Obj = sha1()with open(filename,'rb') as f:sha1Obj.update(f.read())return sha1Obj.hexdigest()print getSha1(path+"/ree/client/libteec.so_64")#下面的调用可以当做一个整体,类似于在终端输入命令,其中间仍然可以调用参数,参数在引号外面
call("sha1sum " + path + "/ree/client/libteec.so_64 > remote_sha1", shell=True)
call("sha1sum " + path + "/ree/client/libteec.so_64 >> remote_sha1", shell=True)
#call(["sha1sum",path+"/ree/client/libteec.so_64",">","remote_sha1"])print 'ok'

 

转载于:https://www.cnblogs.com/luolizhi/p/5591369.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/430451.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一台计算机数据丢失与恢复,如何在不丢失数据的情况下将iPhone与多台计算机同步-万兴数据恢复-万兴恢复专家...

第2部分:将iPhone与多台计算机与iTunes同步如果用户对iPhone有很强的控制欲,并且不想尝试使用任何新软件来同步需求,那么iTunes也可用于将iPhone与多台计算机同步。虽然在第一时间,这可能听起来和iTunes的职能相悖,但实…

iOS OC语言: Block底层实现原理

来源http://www.wtoutiao.com/p/11dgbk4.html 先来简单介绍一下Block Block是什么? 苹果推荐的类型,效率高,在运行中保存代码。用来封装和保存代码,有点像函数,Block可以在任何时候执行。 Block和函数的相似性&#xf…

计算机如何取消还原卡,如何关闭硬件还原卡?

2009-11-06有什么方法可以让电脑每次关机都可以自动删1)打开控制面板/性能维护/管理工具/双击本地安全策略,在右侧选“关机清理虚拟内存页面文件”双击他选“已启用”按应用重启即可。2)建议下载超级兔子是免费的小巧著名的软件,选择清理系统垃圾(全选)&…

服务器虚拟主机推荐,免费的虚拟主机推荐

写在前面:免费虚拟主机免费虚拟主机是指IDC服务商“免费”为站长提供网页寄存服务。免费虚拟主机--用于制作免费个人网站,是学习网页设计的好方法。虚拟主机就是指网站空间,是在网络服务器上划分出一定的磁盘空间供用户放置站点、应用组件等&…

js/css文件修改后浏览器本地缓存解决

本文实例讲述了让html页面随js的修改来更新缓存的实现方法。分享给大家供大家参考。具体实现方法如下: 很多朋友都会碰到这样的情况:如果我们页面加载了js的话下次打开时也会是调用这个js缓存文件,但对于我们修改后调试和发布是非常的不方便了…

js中报错 ajax不存在,AJAX

AJAX : Asynchronous JavaScript and XML 异步JavaScript和XML (XML更多的是被JSON格式替代使用)AJAX 只做一件事情:异步获取数据,更为重要的是还是JS对返回的数据进行操作。异步获取数据极大地改善web与用户的数据交互(如下图左侧为传统web,右侧为借…

iOS开发内购图文教程

2015年最全的内购图文教程,首先是填各种资料,最后是代码,废话不多说,直接上图 第一部分协议 第一步.png第二步.jpg第三步.jpg第四步.png第五步.png第六步.png第七步.jpg第八步.jpg第九步.jpg第十步.pngCNAPS CODE 查询地址https:/…

cisco服务器维修,面向终端的AMP控制台的思科维护的排除列表更改

简介本文档介绍添加到思科维护的例外项的更改。思科维护的例外项由思科创建和维护,以便在面向终端的高级恶意软件防护(AMP)连接器和防病毒、安全或其他软件之间提供更好的兼容性,这些例外项可以添加到应用的新版本。作者:思科工程师Caly Hess…

服务器怎么用光驱装系统教程,使用光驱重装系统详细教程

电脑系统在用了很长一段时间后总会出现卡顿或者其他的问题,这时很多小伙伴后就会选择进行系统的重装,系统的重装也是有多种方法的,比如使用U盘进行重装,或者使用光驱,而今天小编要给大家分享的就是使用光驱重装系统的详…

struts2 Eclipse 中集成strust2开发框架实例

下面通过建立一个小的实例具体来说明Eclipse 集成struts2,以下实例采用的为 struts2 版本为 struts2 2.2.3.1 为应用. 1. 下载struts2的开发包 第一步: 在浏览器中输入 http://apache.org 第二步:在apche的页面项目中选择struct 点击连接进入相关页面 第三步: 点击download选择…

电脑电池,笔记本电池校正,教您怎样校正笔记本电脑电池

只要留个心,就会发现身边的很多人都在使用着笔记本电脑,不过笔记本电脑使用久了,电池可能会出现虚电的情况,导致我们的笔记本的续航时间变短了,这时候需要我们手动对笔记本电池进行校准,为此,小…

苹果手机语音备忘录在哪_苹果手机的备忘录竟然还有这么多隐藏功能?以前不知道真是可惜了!...

使用iPhone手机的用户,不知道有没有仔细研究过手机自带的备忘录功能,它不仅仅只有备忘的功能哦,还有很多隐藏的小技巧,今天带大家一起来一探究竟吧,一起玩转手机的备忘录功能吧!1.编辑排版在备忘录进行文本…

杂牌手柄模拟xboxone手柄_震了,Xbox One 精英手柄2代摸了一次就不舍得放下了

首发于机核网,作者xizongbu近日我有幸提前拿到了微软 Xbox One 的精英手柄2代,这款产品在 E3 2019 微软展前发布会上正式公开,相信不少追求操作极致体验的玩家早就望眼欲穿了。更多的定制空间,更细致入微的体验优化,Xb…

Microsoft Hololens开发上手(4)

磨刀不误砍柴功,我们总有一些小工程师,不了解全貌,不好好思考,上手就开始写代码,这种做法是非常不可取的。对于Hololens的开发也是一样。今天我们来重点看看Hololens里面的一些概念,比如Holograms, 坐标系,…

wo-27s管理员账户和密码_Mac管理员忘记密码怎么办?

在使用Mac电脑时,为了安全很多用户通常都会设置管理员密码。不过如果不小心忘记Mac管理员密码怎么办?幸运的是,有些方法可以重置Mac密码并重新获得访问权限。下面小编就教给大家几种重置用户密码的方法。未开启FileVault的用户方法一&#xf…

电脑怎么彻底删除软件_电脑在使用的过程中如何彻底删除今日热点广告弹窗的方法...

电脑在使用的过程中如何彻底删除今日热点广告弹窗的方法在今日热点弹窗弹出来之后,我们在键盘上同时按下“CtrlAltDel”键,调出“任务管理器”,在任务管理器进程找到“今日热点”,我们右键点击“今日热点”选择“打开文件所在的位…

不用电脑怎么设置苹果铃声_苹果手机怎么设置铃声?完整教程分享

很多人的苹果手机铃声设置的都是用原始默认的铃声,因为苹果手机不支持直接将音乐设置为铃声,而且大多数人不清楚苹果怎么换铃声。当然安卓系统就没有这个问题啦。但是苹果的默认铃声听久了也挺腻的,鉴于有不少粉丝在问苹果手机怎么设置铃声&a…

mysql优化之连接优化

Posted by Money Talks on 2012/02/23 | 第一篇 序章第二篇 连接优化第三篇 索引优化第四篇 查询优化第五篇 到实战中去 连接优化 连接优化主要指客户端连接数据库以及数据库为响应客户端的请求而打开数据表和索引的过程中涉及到的参数调整。原文可以参考这里或者这里。(原文链…

家用电脑配置_游戏搬砖必看教程,游戏工作室电脑如何配置

文章只针对新手对电脑硬件配置了解,大佬可直接关闭,电脑如何配置只代表个人观点!想游戏搬砖赚钱,资金方面也有这个能力的小伙伴可能对手机开那么几个号无法满足,那么今天要说的就是如何利用电脑多开,来达到利益最大化这…

基于MATLAB的Dijkstra算法实现及案例分析

摘要:为研究两地点之间距离(或耗时)最短路线规划,采用MATLAB编程的方法来实现,并利用Floyd算法记录距离(或耗时)最短路线。在不考虑各种影响因素的情况下,以随机小样本数据为例进行演示&#xf…