使用'adb pull ...'时,无论成功如何,都会将输出发送到stderr。这有什么理由吗?举一个例子,拉动的文件是存在的,拉一个文件,该文件不存在:为什么adb push/pull将STDOUT重定向到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
我实际上看到像'adb'这样简单的东西也打印到STDERR – pho79 2014-09-11 00:26:29
在短期内,如果您想分页输出,例如,您可以设置一个别名,如adp ='adb 2 >&1',所以像少的命令将按预期工作 – pho79 2014-09-11 00:44:07