Python subprocess 使用(一)

本文主要讲下 subprocess 的简单使用.

1: 通过subprocess 获取设备信息

import subprocess
def get_android_device_info():
# 使用adb命令获取设备信息
result = subprocess.run(['adb', 'devices', '-l'], capture_output=True, text=True)
output = result.stdout.strip() # 解析设备信息
devices = []
lines = output.split('\n')
for line in lines[1:]:
if 'device' in line:
device_info = line.split()
device = {
'serial': device_info[0],
'model': device_info[4],
'device': device_info[5],
'product': device_info[3],
'transport_id': device_info[6]
}
devices.append(device) return devices # 调用函数获取设备信息
devices = get_android_device_info()
for device in devices:
print('Serial:', device['serial'])
print('Model:', device['model'])
print('Device:', device['device'])
print('Product:', device['product'])
print('Transport ID:', device['transport_id'])
print('--')

具体的adb 执行结果如下:

List of devices attached
6b4a96b2 device usb:1-1 product:LeMax2_WW model:LEX820 device:le_x2 transport_id:43

2: 通过subprocess 获取屏幕分辨率

def get_device_physical():
command = 'adb shell wm size'
result = subprocess.check_output(command.split()).decode().strip()
resolution = result.split()[-1]
return resolution print('设备分辨率:' + str(get_device_physical()))

3: 获取设备系统日志

def capture_android_log():
# 使用adb命令获取Android系统日志
command = "adb logcat"
process = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) # 读取日志输出
while True:
line = process.stdout.readline().decode("utf-8")
if line:
print(line.strip())
else:
break # 调用函数抓取Android系统日志
capture_android_log()

Python subprocess 使用(一)的更多相关文章

  1. 【python库模块】Python subprocess模块功能与常见用法实例详解

    前言 这篇文章主要介绍了Python subprocess模块功能与常见用法,结合实例形式详细分析了subprocess模块功能.常用函数相关使用技巧. 参考 1. Python subprocess ...

  2. python subprocess popen 静默模式(不弹出console控制台)

    python subprocess popen 静默模式(不弹出console控制台) import subprocess,sys IS_WIN32 = 'win32' in str(sys.plat ...

  3. python subprocess相关操作

    python subprocess常用操作 1.subprocess模块的常用函数 函数 描述 subprocess.run() Python 3.5中新增的函数.执行指定的命令,等待命令执行完成后返 ...

  4. Python subprocess.Popen communicate() 和wait()使用上的区别

    之所以会纠结到这个问题上是因为发现在调用Popen的wait方法之后程序一直没有返回.google发现wait是有可能产生死锁的.为了把这个问题彻底弄清楚,搜索一些资料过来看看: 原文链接:http: ...

  5. python subprocess阻塞

    import select import os import subprocess import time import fcntl args = ['python','./fetch_file2.p ...

  6. python subprocess 自动运行实验室程序

    import threading, os, subprocess, time exec_path = "/home/xhz/gems/ruby/amd...../bin/tester.exe ...

  7. Python subprocess模块学习总结

    从Python 2.4开始,Python引入subprocess模块来管理子进程,以取代一些旧模块的方法:如 os.system.os.spawn*.os.popen*.popen2.*.comman ...

  8. python subprocess重定向标准输出

    subprocess.call("ping -c 1 %s" % ip,shell = True,stdout = open('/dev/null','w'),stderr = s ...

  9. Working with Python subprocess - Shells, Processes, Streams, Pipes, Redirects

    Posted: 2009-04-28 15:20 Tags: Python Note Much of the "What Happens When you Execute a Command ...

  10. 【转】 Python subprocess模块学习总结

    从Python 2.4开始,Python引入subprocess模块来管理子进程,以取代一些旧模块的方法:如 os.system.os.spawn*.os.popen*.popen2.*.comman ...

随机推荐

  1. 现代 CSS 解决方案:原生嵌套(Nesting)

    很早之前,就写过一篇与原生嵌套相关的文章 -- CSS 即将支持嵌套,SASS/LESS 等预处理器已无用武之地?,彼时 CSS 原生嵌套还处于工作草案 Working Draft (WD) 阶段,而 ...

  2. 「codeforces - 687D」Dividing Kingdom II

    link. 好题啊. 首先有一个类 kruskal 暴力,就是对于每一个询问,把所有边按权值大小排降序,第一个加进去成为奇环的边就是答案.注意我们不需要关注偶环长成什么样子,所以我们实际上维护的是一棵 ...

  3. 【matplotlib基础】--动画

    matplotlib的动画一直是一个强大但使用频率不高的功能,究其原因,一方面展示动画需要一定的媒介,没有图形和文字展示方便:二来大家更关心的是分析结果的最终图表,图表的动态展示则没有那么重要. 不过 ...

  4. Java 21 新特性:Record Patterns

    Record Patterns 第一次发布预览是在JDK 19.随后又在JDK 20中进行了完善.现在,Java 21开始正式推出该特性优化.下面我们通过一个例子来理解这个新特性. record Po ...

  5. 文心一言 VS 讯飞星火 VS chatgpt (99)-- 算法导论9.3 5题

    五.用go语言,假设你已经有了一个最坏情况下是线性时间的用于求解中位数的"黑箱"子程序.设计一个能在线性时间内解决任意顺序统计量的选择问题算法. 文心一言: 为了在线性时间内解决任 ...

  6. nfls10.1

    T1 大水题,用位运算更加便捷求解. T2 看出来有环了,但是没往基环树上想,寄. 暴力分,有部分分是基础树,可以跑一遍深搜,根节点的选择是 k 种颜色,剩下的是 k - 1 种颜色.还有暴力是可以二 ...

  7. docker入门加实战—从部署MySQL入门docker

    docker入门加实战-从部署MySQL入门docker docker部署MySQL 输入如下命令: docker run -d \ --name mysql \ -p 3306:3306 \ -e ...

  8. CF1294C

    题目简化和分析: 使得 \(a \times b\times c=n~~~~(a\ne b\ne c)\) 思路: 先枚举最小的 \(a\) ,(以下程序的返回值为最小因数(有部分优化),即 \(a\ ...

  9. 实验2_C语言分枝与循环基础应用编程

    试验任务1 task 1.c #include <stdio.h> #include <stdlib.h> #include <time.h> #define N ...

  10. Unity - Win平台修改窗口标题

    原文参考 主要是通过user32.dll获取窗口句柄, 和Unity没有什么关系 using System; using System.Diagnostics; using System.Runtim ...