【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")
相关推荐
带土11 分钟前
33. 文件IO (4) 二进制文件操作与结构体存储 文件路径与目录操作
linux
无敌最俊朗@18 分钟前
C++音视频就业路线
linux·windows
Fr2ed0m27 分钟前
Linux 文本处理完整指南:grep、awk、sed、jq 命令详解与实战
linux·运维·服务器
程序员爱钓鱼39 分钟前
Python编程实战—面向对象与进阶语法 | 属性与方法
后端·python·ipython
大聪明-PLUS41 分钟前
使用 GitLab CI/CD 为 Linux 创建 RPM 包(一)
linux·嵌入式·arm·smarc
程序员爱钓鱼43 分钟前
Python编程实战——面向对象与进阶语法 | 构造函数与析构函数
后端·python·ipython
边疆.1 小时前
【Linux】自动化构建工具make和Makefile和第一个系统程序—进度条
linux·运维·服务器·makefile·make
2021黑白灰1 小时前
windows11 vscode ssh远程linux服务器/虚拟机 免密登录
linux·服务器·ssh
z202305081 小时前
linux之PCIE 设备枚举流程分析
linux·运维·服务器
南汐汐月1 小时前
重生归来,我要成功 Python 高手--day31 线性回归
python·机器学习·线性回归