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

如何通过ADB Shell传入变量?现有代码无法正常运行求助

解决ADB Shell传入变量的问题

你的代码有两个关键问题,直接修改这两处就能正常运行:

  1. 处理文本读取的格式问题
    readlines(1)返回的是包含单行文本的列表,需要取出列表里的字符串元素,同时去掉末尾的换行符(避免传到ADB时多出无效换行):
aggr = open(r"xxx.txt", 'r')
content = aggr.readlines(1)[0].strip()  # 提取单行内容并去除换行、首尾空格
  1. 正确将变量嵌入ADB命令
    你之前的写法是把[content]当作普通字符串传递,需要用字符串格式化把变量值真正插入到命令里,推荐用Python的f-string(3.6及以上版本支持):
device.shell(f'input text "{content}"')

如果你的Python版本不支持f-string,也可以用format方法替代:

device.shell('input text "{}"'.format(content))

额外注意:如果content里包含ADB input text命令的特殊字符(比如空格、双引号、&等),需要先转义才能正常识别,可添加一个简单的处理函数:

def escape_adb_text(text):
    return text.replace(' ', '%s').replace('"', '\\"').replace('&', '\\&')

device.shell(f'input text "{escape_adb_text(content)}"')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 20:12:01