测试积点老人 发表于 2021-3-24 11:08:00

subprocess.Popen 调用 cmd 命令返回的结果是错的,但是同样的命令直接 cmd 执行就...

subprocess.Popen 调用 cmd 命令返回的结果是错的,但是同样的命令直接 cmd 执行就对的是怎么回事啊(目的是想调用 aapt dump badging 命令获取 app 包名)
个人感觉错误原因是:执行 subprocess.Popen 就没有成功一样;求大佬指点代码如下:import subprocess
apkpath = "E:/apium_phone/apk/YYHL_Android_V1_2_2_ver_r0601.apk"
aapt_path="D:/android-sdk/build-tools/28.0.2"
def get_apk_pkg():
# cmd = "aapt dump badging " + apkpath + " | grep package:"
cmd= "aapt dump badging " + apkpath + '| find "package"'
result = ""
print(cmd)
p = subprocess.Popen(cmd, stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
stdin=subprocess.PIPE, shell=True)
# print(p)
print(p.communicate())
(output, err) = p.communicate()
if output != "":
result = output.split().decode()
return result
print(get_apk_pkg())返回结果:

qqq911 发表于 2021-3-25 11:02:55

检查下环境
页: [1]
查看完整版本: subprocess.Popen 调用 cmd 命令返回的结果是错的,但是同样的命令直接 cmd 执行就...