python:subprocess模块连续执行多条cmd命令

这篇博客介绍了如何利用Python的subprocess模块编写自动化脚本,将安装包推送到手机并进行安装。作者解决了在使用os.system()时命令窗口快速关闭的问题,以及在处理包含中文文件名时的gbk编码问题。通过使用Popen和communicate方法,成功实现了多条cmd命令的连续执行,并确保了在/sdcard/路径下无中文名以避免错误。
摘要由CSDN通过智能技术生成

利用python自动化脚本,本地push安装包到手机,自动安装应用的脚本。在此过程中,使用os.system()命令后,cmd命令窗口出现后又快速消失。
猜测与进程,或者线程有关系,查询相关命令,发现subprocess模块的communicate可将多个cmd命令在一个进程的子进程下连续执行。特记录一下,便于自己回顾。
特别感谢此篇“python怎么实行窗口输入_python如何分别向两个cmd窗口输入指令?”文章,困扰了我几天的问题迎刃而解。

手机/sdcard/下,不能有中文名称,否则gbk模式依然会报错。

# -*- encoding=utf-8 -*-
from subprocess import Popen, PIPE, STDOUT
#进入/sdcard 下,查看文件列表
#使用gbk格式代替utf-8,避免在解码过程中遇到中文文件名而报错
process = Popen(["cmd"], shell=False, stdout=PIPE, stdin=PIPE, stderr=STDOUT)
commands = ("adb shell\n"
            "cd sdcard\n"
            "ls\n"
            )
outs, errs = process.communicate(commands.encode("gbk"))
content = [z.strip() for z in outs.decode("gbk").split("\n") if z]
print(*content,sep="\n")


评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值