使用“adb pull ...”时,无论成功与否,输出都会发送到 stderr。这有什么原因吗?例如,拉取一个存在的文件并拉取一个不存在的文件:
当我跑步时:
adb pull /data/data/good_file.txt /tmp`
我得到以下信息:
stdout:
stderr: 0 KB/s (13 bytes in 0.078s)
(即没有标准输出)
然后当我跑步时:
adb pull /data/data/bad_file.txt /tmp
我得到以下信息:
stdout:
stderr: remote object '/data/bad_file.txt' does not exist
下面的程序用于生成上述结果:
from subprocess import Popen
cmd = "adb pull /data/data/good_file.txt /tmp"
p = Popen(cmd.split(), stdout=subprocess.PIPE, stderr=subprocess.PIPE)
out, err = p.communicate()
print cmd
print "stdout: " + out
print "stderr: " + err