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,一经查实,立即删除!

相关文章

计算机数学基础模拟试题,计算机数学基础(A)模拟试题.doc

计算机数学基础(A)模拟试题计算机数学基础(A)模拟试题一、单项选择题(每小题3分,共21分)1.设,则( ).A. B.C. D.2.若是由及围成,则( )A. B. C. D.3.A,B都是阶矩阵(,则下列…

微型计算机在温室管理中的应用初探,文献综述-测控051-陈杰.doc

文献综述-测控051-陈杰基于单片机温室大棚监控系统的软件设计文献综述陈杰(电子信息工程学系 指导教师: 黄永华)一、研究背景及动态 中国作为一个农业大国,农业的发展状况至关重要,要发展农业就必须走农业现代化这条道路。随着国民经济的迅速…

设计计算机程序时 要考虑计算的过程,算法和程序设计练习题复习课程(6页)-原创力文档...

算法和程序设计练习题一、选择题:1、使用计算机解题的步骤,以下描述正确的是:__ B__。A .正确理解题意→设计正确算法→寻找解题方法→编写程序→调试运行B .正确理解题意…

Objective-C浮点数转化整数(向上取整、向下取整)

Objective-C拓展了C,自然很多用法是和C一致的。比如浮点数转化成整数,就有以下四种情况。 1.简单粗暴,直接转化 float f 1.5; int a; a (int)f; NSLog("a %d",a); 输出结果是1。(int)是强制类型转化,丢弃…

毕业作文计算机系统与维护,修电脑作文600字

星期二的上午第一节是语文课。预备铃声刚响语文老师就走进教室。照常打开了电脑,可是教室电脑的屏幕一片黑色,什么也看不到。老师用手敲了敲触摸屏,电脑的屏幕没有任何反应。同学们就七嘴八舌的说了起来,“电脑中毒啦,…

Mybatis为实体类定义别名typeAliases

首先为大家科普一下,Mybatis事实上就是Ibatis。它是由Ibatis更名而来。 最近在学Mybatis的知识,在讲到为实体类定义别名是有两个小知识与大家共勉。 为实体类定义别名一般有以下几个部分组成 1.在Mybatis的配置(一般为conf.xml)文…

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

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

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

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

计算机过程控制系统教材,过程控制系统-样章试读.PDF

过程控制系统-样章试读.PDF高等院校教材过程控制系统陈夕松  汪木兰  主编李  奇      主审KB2北  京内 容 简 介本书以过程控制系统组成和结构为线索,介绍了过程控制的基本概念,过程控制常用仪表的原理和工程选用,过程对象及建模方法…

sufeinet

http://www.sufeinet.com http://tool.sufeinet.com/ 转载于:https://www.cnblogs.com/shiningrise/p/5603557.html

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

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

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

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

如何优化虚拟桌面

虚拟桌面代理安装的具体优化: 禁止Windows 自动更新[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update]"AUOptions"dword:00000001"ScheduledInstallDay"dword:00000000"ScheduledInstallTime&qu…

服务器配置和性能,服务器性能配置(硬件)

原标题:服务器性能配置(硬件)1.CPU大部分的CPU在同一时间内只能运行一个线程,但是超线程的处理器可以在同一个时间运行多个线程,可以利用处理前超线程特性提高系统性能。虽然采用超线程技术能同时执行两个线程,但它并不象两个真正…

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

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

图片自动翻转css代码,用css实现图片翻转(示例代码)

简介这篇文章主要介绍了用css实现图片翻转(示例代码)以及相关的经验技巧,文章约1193字,浏览量447,点赞数1,值得参考!用css实现图片翻转.flip-container {perspective:1000px;}.flip-container:hover .flipper {transfo…

06:月度开销

题目链接:http://noi.openjudge.cn/ch0111/06/ 总时间限制: 1000ms 内存限制: 65536kB描述  农夫约翰是一个精明的会计师。他意识到自己可能没有足够的钱来维持农场的运转了。他计算出并记录下了接下来 N (1 ≤ N ≤ 100,000) 天里每天需要的开销。 约翰打算为连续…

ajax传值controller怎么写,ajax如何传递参数给controller

前台:‘type‘ : ‘post‘,‘contentType‘ : ‘application/json;charsetUTF-8‘,‘data‘ : JSON.stringify(JsonObject),其中JsonObject就是你组装的JSON对象后台:RequestMapping(value "/query", method RequestMethod.PO…

mc服务器玩家无限掉线怎么办,服务器频繁掉线 求解

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼Mods loaded: 37ModLoader 1.1mod_MinecraftForge 1.3.3.12mod_ModLoaderMp 1.1mod_NotEnoughItems 1.1.2mod_ReiMinimap v3.0_01 [1.1]mod_AnimalBikes AnimalBikes 1.9.0mod_BuildCraftCore 2.2.12mod_BuildCraftBuilders 2.2.12…

delphi中的copy,delete,pos和leftstr,RightStr的用法

copy举个例子:str : “123456”;str1 : Copy(Str,2,3);结果就是 str1 等于 234。Copy有3个参数,第一个是你要处理的字符串,第二个是你要截取的开始位置,第3个是截取位数。当你的第3个参数大于字符长度,那么效果就是取 …