码迷,mamicode.com
首页 > 移动开发 > 详细

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

时间:2018-11-17 22:20:01      阅读:327      评论:0      收藏:0      [点我收藏+]

标签:proc   数据流   获取   div   数据   roi   adb   修复   scree   

使用adb命令

./adb shell screencap -p

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

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

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

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

所以用replace修复数据流。

out=out.stdout.read().replace(b\r\n, b\n)

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

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

标签:proc   数据流   获取   div   数据   roi   adb   修复   scree   

原文地址:https://www.cnblogs.com/LukeStepByStep/p/9975727.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!