51Testing软件测试论坛

标题: subprocess.Popen 调用 cmd 命令返回的结果是错的,但是同样的命令直接 cmd 执行就... [打印本页]

作者: 测试积点老人    时间: 2021-3-24 11:08
标题: 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()[1].decode()[6:-1]
return result
print(get_apk_pkg())
返回结果:
[attach]132342[/attach]



作者: qqq911    时间: 2021-3-25 11:02
检查下环境




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2