import subprocess#最基本的启动进程方式类似cmd下执行: notepad.exe text.txt 命令
obj = subprocess.Popen(['notepad.exe','text.txt'], shell = True, stdin=subprocess.PIPE, stdout=subprocess.PIPE ,stderr=subprocess.PIPE)
print(obj.stderr.read().decode('gbk'))#进入某个环境执行语句,需要依赖上次执行的状态
obj = subprocess.Popen('python', shell = True, stdin=subprocess.PIPE, stdout=subprocess.PIPE ,stderr=subprocess.PIPE)
obj.stdin.write('print(6+7)'.encode('utf-8'))
info,err = obj.communicate()
print(info.decode('gbk'))#进入某个环境执行语句(adb shell),注意shell内部命令需要带\n,执行完后一定记得执行exit命令退出,否则会阻塞
obj = subprocess.Popen(['adb', 'shell'], shell = True, stdin=subprocess.PIPE, stdout=subprocess.PIPE ,stderr=subprocess.PIPE)
obj.stdin.write('ls\n'.encode('utf-8'))
obj.stdin.write('exit\n'.encode('utf-8'))  #重点,一定要执行exit
info,err = obj.communicate()
print(info.decode('gbk'))
print(err.decode('gbk'))#进入某个环境执行语句(adb shell),命令用列表方式全部列出
cmds = ["cd data",'cd data',"ls","exit",#执行退出,重要
]
obj = subprocess.Popen("adb shell", shell= True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
info = obj.communicate(("\n".join(cmds) + "\n").encode('utf-8'));
for item in info:if item:print(item.decode('gbk'))#当需要连续实时输出信息时,采用obj.stdout.readline方式读取
import chardet
obj = subprocess.Popen("adb logcat", shell = True, stdin=subprocess.PIPE, stdout=subprocess.PIPE ,stderr=subprocess.PIPE)
for item in iter(obj.stdout.readline,'b'):encode_type = chardet.detect(item)if encode_type['encoding'] == 'utf-8':print(item.decode('utf-8'))elif encode_type['encoding'] == 'Windows-1252':print(item.decode('Windows-1252'))else:print(item.decode('gbk'))

python之subprocess.Popen常用案例相关推荐

  1. Python:subprocess模块

    简介:subprocess是子流程,即进程的意思,该模块可以启动一个新进程,并连接到它们的输入/输出/错误管道,从而获取返回值. 常用方法和接口: 1.subprocess.run() 2.subpr ...

  2. python的subprocess模块

    1 os与commands模块 ​ 2 subprocess模块 ​ 3 subprocess.Popen类 我们几乎可以在任何操作系统上通过命令行指令与操作系统进行交互,比如Linux平台下的she ...

  3. subprocess.Popen 调用缓慢

    表现 使用 python 的 subprocess.Popen 调用脚本时,发现虽然设置了直接返回状态码,不必等待脚本执行完毕,但依然会有很慢的情况出现,经过排查,发现原因在于fd被多个子进程同时继承 ...

  4. python popen阻塞_对Python subprocess.Popen子进程管道阻塞详解

    问题产生描述 使用子进程处理一个大的日志文件,并对文件进行分析查询,需要等待子进程执行的输出结果,进行下一步处理. 出问题的代码 # 启用子进程执行外部shell命令 def __subprocess ...

  5. python运行系统找不到指定文件_“系统无法找到指定的文件”当调用Python中的subprocess.Popen...

    我试图使用svnmerge.py来合并一些文件.底下它使用python,当我使用它时,我得到一个错误 - "系统找不到指定的文件".工作中的同事正在运行相同版本的svnmerge. ...

  6. linux中popen汉字乱码,Python中使用subprocess.Popen返回值乱码解决方案

    Python中使用subprocess.Popen返回值乱码解决方案 问题描述 在python 2.7中,使用subprocess.Popen()调用*nix命令,并通过管道,获取其输出,并将其返回值 ...

  7. Python语言学习之pandas:DataFrame二维表的简介、常用函数、常用案例之详细攻略

    Python语言学习之pandas:DataFrame二维表的简介.常用函数.常用案例之详细攻略 目录 DataFrame的简介 DataFrame的常用案例 1.写入和读取excel表格文件

  8. python subprocess Popen

    转载 http://blog.163.com/yi_yixinyiyi/blog/static/136286889201152234037495/ 2011-06-22 15:40:37|  分类:  ...

  9. python stdout stderr 一起输出_python – 使用subprocess.Popen()时,stderr和stdout没有输出

    我正在使用 Python来自动化SVN提交,我想将SVN命令的输出写入日志文件.我有的代码可以使SVN运行,但问题是在成功提交时,子进程调用不会返回我的日志的任何输出. 当我手动运行SVN时,通过比较 ...

最新文章

  1. 中国互联网+机器视觉行业商业模式创新与投资机会深度研究报告
  2. 私藏的7个实用工具,干货多到爆炸!
  3. 魔术方法php,PHP中常用的魔术方法
  4. fasttext 安装_fasttext的简单介绍
  5. mysql语句执行顺序
  6. php链接mysql验证用户登录,PHP连接mysql验证用户名是否存在
  7. 【视频回放】Best of Build Tour in China 暨 Watching Party - 大湾区专场
  8. 关于换行这个动作,win 和 mac 的实现
  9. Linux查看负载相关命令
  10. iOS导航控制器和Segues
  11. mysql lock not wait_【MySQL】关于MySQL出现lock wait timeout exceeded 的解决方案
  12. React组件: 提取图片颜色
  13. DB2 设置CodePage
  14. 菜鸟教程 程序员学习网站
  15. jq ui datepicker添加时分秒
  16. 在Openjdk 8 中如何合理使用容器 memory 资源
  17. 广大银行java 面试_2018光大银行春季招聘面试题目及答案
  18. 网络笔记(24) 云中网络:自己拿地成本高,购买公寓更灵活
  19. IOS 获取网络图片的大小 改变 图片色值 灰度什么的方法集合
  20. python中时间模块datetime总结

热门文章

  1. 单片机与HC-05蓝牙模块通信
  2. ABBYY FineReader v15.0.110.1875破解版
  3. sublime格式化显示json字符串文件
  4. 实验7 H.264码流分析仪
  5. 100道面试常考的Python练习题
  6. 一个初级小萝卜头的感想
  7. (附源码)ssm历史大记事收录平台 毕业设计 231157
  8. Interview: Kevin Kelly, editor, author, and futurist采访:凯文·凯利,编辑、作家、未来学家
  9. 全国软考中级软件设计师 学习笔记-软件工程部分
  10. -- 18.查询各科成绩最高分、最低分和平均分:以如下形式显示:课程ID,课程name,最高分,最低分,平均分,及格率,中等率,优良率,优秀率 -- 及格为>=60,中等为:70-80,优良为:80-