class Test:def __init__(self, path):self.path = pathdef test(self):p = subprocess.check_output('type ' + self.path, shell=True)        # bytes类型,输出全部print(p.decode())                                                   # bytes -> strdef test1(self):p = subprocess.Popen('type ' + self.path, stdout=subprocess.PIPE, shell=True)a = p.stdout.read()                 # bytes类型,输出全部print(a.decode())                   # bytes -> strdef test2(self):p = subprocess.Popen('type ' + self.path, stdout=subprocess.PIPE, shell=True)a = p.stdout.readline()             # bytes类型,输出一行print(a.decode())                   # bytes -> strdef test3(self):p = subprocess.Popen('type ' + self.path, stdout=subprocess.PIPE, shell=True)a = p.stdout.readlines()            # list类型,输出全部print(a)def test4(self):p = subprocess.Popen('type ' + self.path, stdout=subprocess.PIPE, shell=True)print(p.stdout)for i in p.stdout:print(i)                        # bytes类型,输出一行,同p.stdout.readline()

1、连续执行shell命令

方法一:

cmds = [b"alias ls='ls --color=never'",b"cd usr",b"ls",b"exit"  # 这是是非常关键的,退出]
pipe = subprocess.Popen("adb shell", stdin=subprocess.PIPE, stdout=subprocess.PIPE)
out, err = pipe.communicate(b"\n".join(cmds) + b"\n")
print(out)

参考
https://blog.csdn.net/telenewbie/article/details/60580727

方法二:

p1 = subprocess.Popen("adb shell cd usr&&ls --color=never", stdout=subprocess.PIPE, shell=True)
print(p1.stdout.read())

同时执行多行命令:
无论是 Linux/Mac 还是 Windows 的 shell 命令都支持一条命令来执行多条命令的。一共有 &&,&,||,| 这么几种方式,这几种方式分别代表着不同的含义:

&&:command1 && command2,如果 command1 执行成功了,就执行命令 command2,如果 command1 失败了,就不会执行 command2 了。
&:command1 & command2,无论 command1 执行成功与否都会执行 command2。
||:command1 || command2,如果 command1 执行成功了,就不会执行 command2 了,如果 command1 失败了,就会继续执行 command2。
|:command1 | command2,command1 的结果做为 command2 的参数,如果 command1 失败了,整个命令也就都失败了。

Linux/Mac 下还可以使用 ; 来链接两条命令,顺序执行命令,不管成功与否都往后执行,和 & 含义一样。

参考
http://blog.sina.com.cn/s/blog_44d19b500102w585.html


2、执行命令并持续获取返回值

import subprocess
order = 'adb logcat'
pi = subprocess.Popen(order, shell=True, stdout=subprocess.PIPE)
for i in iter(pi.stdout.readline, 'b'):print(i)

参考
http://blog.sina.com.cn/s/blog_44d19b500102x21i.html

subprocess用法笔记相关推荐

  1. easyui前端实现多选框_前端:Element UI 多选框组用法笔记

    今天给大家分享一下Element UI 多选框组用法笔记,直接上代码! "兴趣爱好:"> "form.checkList"> for= {{item ...

  2. springboot+mybatis集成自定义缓存ehcache用法笔记

    今天小编给大家整理了springboot+mybatis集成自定义缓存ehcache用法笔记,希望对大家能有所办帮助! 一.ehcache介绍 EhCache 是一个纯Java的进程内缓存管理框架,属 ...

  3. SpringBoot集成Redis用法笔记

    今天给大家整理一下SpringBoot集成Redis用法笔记,希望对大家能有所帮助! 一.Redis优点介绍 1.速度快 不需要等待磁盘的IO,在内存之间进行的数据存储和查询,速度非常快.当然,缓存的 ...

  4. SpringBoot集成Mybatis用法笔记

    今天给大家整理SpringBoot集成Mybatis用法笔记.希望对大家能有所帮助! 搭建一个SpringBoot基础项目. 具体可以参考SpringBoot:搭建第一个Web程序 引入相关依赖 &l ...

  5. SQLServer知识:sqlcmd用法笔记

    今天给大家介绍sqlcmd用法笔记,希望对大家能有所帮助! 1.介绍 sqlcmd是一个 Microsoft Win32 命令提示实用工具,可以通过该命令工具实现SQL语句.脚本的执行,并且可以实现脚 ...

  6. 前端:Element UI 多选框组用法笔记

    今天给大家分享一下Element UI 多选框组用法笔记,直接上代码! <html><head></head><body><el-form> ...

  7. shell脚本常用语句用法笔记

    脚本基本语句用法笔记 grep -i 查询时不区分大小写 -n打印匹配的行号 -v 打印不匹配的行 -AX包括每次匹配之后X行 -BX包括每次匹配之后X行 cat /etc/passwd |grep ...

  8. IDEA中安装配置Jrebel热部署插件用法笔记

    今天给大家介绍一下IDEA中安装配置Jrebel热部署插件用法,希望对大家能有所帮助! 1.Jrebel插件介绍 JRebel属于一款JAVA虚拟机插件,它可以让你的项目在不需要进行重新编译的情况下, ...

  9. 后端:C#操作Mongodb用法笔记

    MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案.今天主要给大家介绍一下C#编程语言下Mongodb的用法.开发环境为VS ...

最新文章

  1. Python 中少为人知的 10 个安全陷阱
  2. 除 Java 外,还有哪些编程语言蹭了 JVM 的车票?
  3. 《Windows 系列》- 右击添加管理员权限
  4. Java与C#平台通信 WCF CXF SOAP
  5. Java中 ArrayList类常用方法和遍历
  6. linux-命令模式-光标定位-编辑中20.22
  7. Abseil之New Join API
  8. css中背景颜色的代码,css背景代码是什么,css怎么控制背景颜色
  9. 摄影爱好者尝试图库销售时需要注意什么?| 拍者手记
  10. 利用gitee仓库的流水线功能实现Java项目的自动化部署
  11. 基于CNN实现垃圾分类案例
  12. 中首清算质疑偶像演员不适合演抗战剧?《雷霆战将》三大还原引争议
  13. 【Redis基础和应用】(四)HyperLogLog BloomFilter
  14. GNU 编译C++程序
  15. 用python实现智能监控
  16. Diagram Designer
  17. Vue项目中使用海康安全生产平台播放监控视频
  18. C语言-MSB/LSB大小端序
  19. C语言中的stdbool.h头文件
  20. UE4对电脑配置的要求

热门文章

  1. Docker6种网络配置详解,网络模式应该这么选
  2. Xcode 没有提示
  3. AS3 3D 电子相册 (源码+注释+测试+运行效果图)
  4. linux中awk的用法
  5. python酒店评论分析_酒店舆情分析
  6. 用python把图片转成黑白的
  7. 诺亚方舟论坛的漫长开发历程(一)
  8. html原生时间选择框,HTML5日期选择器有任何样式选项吗?
  9. 医生如何自己进行视力矫正
  10. 复旦大学肖仰华老师-知识图谱-概念与技术