You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows下Python调用fastboot输出无法捕获问题求助

解决Windows下Python捕获fastboot输出的问题

核心原因

fastboot命令的输出默认会写入标准错误流(stderr),而非标准输出流(stdout),这就是你之前捕获stdout得到空值的原因。

解决方案1:同时捕获stderr

修改代码,将stderr也重定向到PIPE,从stderr变量中提取内容:

import subprocess

deviceId = "你的设备ID"
output = subprocess.Popen(
    f"fastboot -s {deviceId} getvar slot-count",
    shell=True,
    stdout=subprocess.PIPE,
    stderr=subprocess.PIPE,
    universal_newlines=True
)
stdout, stderr = output.communicate(timeout=600)
# 从stderr中获取实际输出
print("捕获到的输出:", stderr.strip())

解决方案2:不使用shell=True(更推荐)

避免shell解析带来的潜在问题,将命令拆分为列表形式传入,同时把stderr重定向到stdout统一捕获:

import subprocess

deviceId = "你的设备ID"
cmd = ["fastboot", "-s", deviceId, "getvar", "slot-count"]
output = subprocess.Popen(
    cmd,
    stdout=subprocess.PIPE,
    stderr=subprocess.STDOUT,
    universal_newlines=True
)
stdout, _ = output.communicate(timeout=600)
print("捕获到的输出:", stdout.strip())

额外处理:提取具体数值

如果需要从输出中提取slot-count的具体数值,可通过字符串处理实现:

# 假设输出格式为"slot-count: 2"
slot_count = stdout.strip().split(":")[-1].strip()
print("插槽数量:", slot_count)

内容的提问来源于stack exchange,提问作者ABHISHEK SINHA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 06:43:13