当前位置:首页 > Python教程 > python技巧

python使用adb获取Android Phone截图(解决Windows传输编码导致png文件损坏的问题)

使用adb命令

./adb shell screencap -p

可以截取当前屏幕,并且作为stdout,传给外部。那么对于python,我们可以用如下代码获取数据流。

使用Popen创建子进程用于读取数据流。

import subprocess
out=subprocess.Popen('./adb shell screencap -p',stdout=subprocess.PIPE)

out是当前的Popen实例,考虑到Windows接收过程中,会把n当作rn写入流中,进而导致png文件打不开。

所以用replace修复数据流。

out=out.stdout.read().replace(b'rn', b'n')

这里得到的out就是正常的二进制数据了,将其以wb的模式写成.png即可。


【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!