【python】subprocess.Popen执行adb shell指令进入linux系统后连续使用指令,出现cmd窗口阻塞问题

问题描述

subprocess.Popen执行adb shell指令进入linux系统后出现cmd窗口阻塞问题,需要手动关闭cmd才会继续执行其他指令。

解决方案

1、cmd指令后面加入exit\n关闭exe进程

2、subprocess.Popen()添加内置参数creationflags=subprocess.CREATE_NO_WINDOW隐藏窗口弹出

参考代码

bash 复制代码
import subprocess
import os
def command(cmd):
    try:
        process =subprocess.Popen(["adb","shell"], shell=False, stdout=subprocess.PIPE, stdin=subprocess.PIPE, stderr=subprocess.STDOUT, creationflags=subprocess.CREATE_NO_WINDOW)
        outs,error= process.communicate((cmd+'exit\n').encode())
        content = [z.strip() for z in outs.decode("gbk").split("\n") if z]
        print(*content,sep="\n")
    except Exception as e:
        process.kill()
        print(e, e.__traceback__.tb_lineno, '行')
        
command("grep 'app_id = 17' mnt/log/rmu.log\n")
相关推荐
码农黛兮_4615 分钟前
Linux 常用命令集合
linux
迷茫的蜉蝣19 分钟前
ev_loop_fork函数
linux·c语言·libev
Y3174291 小时前
Python Day 22 学习
python·学习
正在走向自律1 小时前
Python 自动化脚本开发秘籍:从入门到实战进阶(6/10)
开发语言·python
白熊1881 小时前
【计算机视觉】基于Python的相机标定项目Camera-Calibration深度解析
python·数码相机·计算机视觉
TianJinZi2 小时前
linux环境安装docker
linux·运维·docker
仙人掌_lz2 小时前
深入理解深度Q网络DQN:基于python从零实现
python·算法·强化学习·dqn·rl
小雅痞2 小时前
[Java][Leetcode middle] 80. 删除有序数组中的重复项 II
java·python·leetcode
大叔_爱编程2 小时前
p020基于Django的4S店客户管理系统
vue.js·python·django·毕业设计·源码·课程设计·4s店客户管理系统
IT飞牛2 小时前
Linux服务器常用运维工具/命令
linux·运维·服务器