python 中调用shell命令
subprocess模块
根据Python官方文档说明,subprocess模块用于取代上面这些模块。有一个用Python实现的并行ssh工具—mssh,代码很简短,不过很有意思,它在线程中调用subprocess启动子进程来干活。
- >>> from subprocess import call
- >>> call(["ls", "-l"])
subprocess与system相比的优势是它更灵活(你可以得到标准输出,标准错误,“真正”的状态代码,更好的错误处理,等..)。我认为使用os.system已过时,或即将过时。
#!/usr/bin/env python
#encoding=utf-8 import 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-8 import 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): #计算sha1
sha1Obj = 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'
python 中调用shell命令的更多相关文章
- 【python中调用shell命令使用PIPE】使用PIPE作为stdout出现假卡死的情况——将stdout重定向为输出到临时文件
在Python中,调用:subprocess.Popen(cmd, stdout = PIPE, stderr = PIPE, shell= true)的时候,如果调用的shell命令本身在执行之后会 ...
- Awk中调用shell命令
Awk中调用shell命令 需求 在awk中,有时候需要调用linux系统中命令,如计算字符串的MD5值,并保存下来. 方法参考 call a shell command from inside aw ...
- 【转载】如何在C语言中调用shell命令
转载自:http://blog.csdn.net/chdhust/article/details/7951576 如何在C语言中调用shell命令 在linux操作系统中,很多shell命令使用起来非 ...
- python中执行shell命令的几个方法小结(转载)
转载:http://www.jb51.net/article/55327.htm python中执行shell命令的几个方法小结 投稿:junjie 字体:[增加 减小] 类型:转载 时间:2014- ...
- 「Python」6种python中执行shell命令方法
用Python调用Shell命令有如下几种方式: 第一种: os.system("The command you want"). 这个调用相当直接,且是同步进行的,程序需要阻塞并等 ...
- Python中调用shell
1 简单调用shell命令 os.system(command) 在一个子shell中运行command命令, 并返回command命令执行完毕后的退出状态. 这实际上是使用C标准库函数system( ...
- [Python]在python中调用shell脚本,并传入参数-02python操作shell实例
首先创建2个shell脚本文件,测试用. test_shell_no_para.sh 运行时,不需要传递参数 test_shell_2_para.sh 运行时,需要传递2个参数 test_shell ...
- linux C中调用shell命令和运行shell脚本
1.system(执行shell 命令) 相关函数 fork,execve,waitpid,popen表头文件 #include<stdlib.h>定义函数 int system(cons ...
- python中执行shell命令的几个方法小结
原文 http://www.jb51.net/article/55327.htm 最近有个需求就是页面上执行shell命令,第一想到的就是os.system, os.system('cat /proc ...
随机推荐
- sublime 3 最新 LICENSE
http://blog.sina.com.cn/s/blog_68e267e10102v76h.html
- 正则表达式协助实现排序&&邮箱验证
/** 将IP地址按照字符串的自然顺序排序,只要让他们的每段的位数都是3就可以. 1.按照每一段需要的最多的0进行补齐,那么每一段就会至少保证有3位. 2.将每一段都保留3位.这样所有的ip地址都是每 ...
- tomcat源码分析(一)
tomcat的启动从Bootstrap类的main方法开始. public static void main(String args[]) { //单例 if (daemon == null) { d ...
- logrotate日志轮转配置文档
转自:http://blog.163.com/bull_linux/blog/static/2138811422013101334544349/ 使用: logrotate CONF_FILE+ ...
- F - 娜娜梦游仙境系列——多民族王国
F - 娜娜梦游仙境系列——多民族王国 Time Limit: 2000/1000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Othe ...
- Python学习之旅--第一周--初识Python
一:Python是一种什么样的语言? 1.语言的分类: a.编译型语言和解释性语言: 通常所说的计算机语言分为编译型和解释型语言.编译型语言典型的如C,C++,通常在程序执行之前必须经由编译器编译成机 ...
- 利用xcopy命令实现本地文件复制到远程服务器的方法
net use \\192.168.1.198\ipc$ Zqf198703 /user:royalpeak xcopy g:\backup\*.* \\192.168.1.198\数据备份 /D / ...
- js iframe跨域访问
1.什么是跨域? 2.前台解决跨域几种方法 2.1 动态创建script 2.2 使用document.domain 2.3使用HTML5新属性postMessage 2.4 利用iframe和loc ...
- Apache+Tomcat服务器集群配置
在实际应用中,如果网站的访问量很大,为了提高访问速度,可以与多个Tomcat服务器与Apache服务器集成,让他们共同运行servlet/jsp 组件的任务,多个Tomcat服务器构成了一个集群(Cl ...
- wordpress 修改过程
chown -R www /home/www/wordpress,把所有者修改成www. 如果不行 则 解决"要执行请求的操作,WordPress需要访问您网页服务器的权限"方法: ...