【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")
相关推荐
123过去2 分钟前
fcrackzip使用教程
linux·网络·测试工具·安全
书到用时方恨少!9 分钟前
Python threading 使用指南:并发编程的轻骑兵
python·多线程·thread·多任务
水月天涯13 分钟前
Mac系统下制作 Ubuntu镜像(小白教程)
linux·ubuntu·macos
A.A呐13 分钟前
【Linux第二十三章】传输层
linux·运维·服务器
Yupureki13 分钟前
《Linux网络编程》1.网络基础
linux·运维·服务器·c语言·网络·c++
kongba00716 分钟前
复刻 Claude Code 项目御马术缰绳系统 harness engineering 落地蓝图
java·linux·服务器
努力学习_小白16 分钟前
数据增强——tensorflow
人工智能·python·tensorflow
m0_6948455717 分钟前
marimo搭建教程:替代Jupyter的交互式开发工具
服务器·ide·python·docker·jupyter·github
csdn2015_21 分钟前
Set<String> 类型取第一条记录
开发语言·windows·python
csdn2015_22 分钟前
List<String> 转换为Set<String>
windows·python·list