python 调用adb logcat 获取指定log时间
时间: 2023-09-08 07:09:34 浏览: 121
可以使用 Python 的 subprocess 模块调用 adb 命令来获取 logcat,然后通过正则表达式提取指定时间的 log。
以下是一个示例代码:
```python
import subprocess
import re
# 要获取的时间范围
start_time = "2021-10-25 10:00:00.000"
end_time = "2021-10-25 10:01:00.000"
# 构建 adb 命令
cmd = "adb logcat -v time"
# 调用 subprocess 执行命令
proc = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE)
# 逐行读取输出并匹配时间
for line in proc.stdout:
if re.search(r'\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}\.\d{3}', line.decode('utf-8')):
log_time = re.findall(r'\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}\.\d{3}', line.decode('utf-8'))[0]
if start_time <= log_time <= end_time:
# 输出符合条件的 log
print(line.decode('utf-8').strip())
```
该代码首先构建了一个 adb logcat 命令,并通过 subprocess.Popen 执行,然后逐行读取输出并匹配时间。如果时间符合要求,就将该行 log 输出。需要注意的是,由于 logcat 输出的时间格式是固定的,因此可以通过正则表达式进行匹配。
阅读全文