1. 程式人生 > >通過Python連線手機,並截圖手機螢幕儲存到電腦(android)

通過Python連線手機,並截圖手機螢幕儲存到電腦(android)

首先下載adb

可以到百度網盤連結下載:https://pan.baidu.com/s/1htbYtq0

或者自己去搜索引擎搜尋,網上一大堆

將下載的壓縮包解壓,如圖:


然後再系統中新增環境變數:

右鍵我的電腦- 屬性-高階系統設定-高階-環境變數

將Path中新增adb.exe的路徑:比如我的是G:\android\adb


然後用usb連線手機,且手機開啟USB除錯選項

通過命令列adb devices檢視連線的裝置


通過Python的subprocess模組來模擬命令列操作

import subprocess

class Screenshot():#擷取手機螢幕並儲存到電腦
    def __init__(self):
        #檢視連線的手機
        connect=subprocess.Popen("adb devices",stderr=subprocess.PIPE,stdout=subprocess.PIPE,shell=True)
        stdout,stderr=connect.communicate()   #獲取返回命令
        #輸出執行命令結果結果
        stdout=stdout.decode("utf-8")
        stderr=stderr.decode("utf-8")
        print(stdout)
        print(stderr)

    def screen(self,cmd):#在手機上截圖
        screenExecute=subprocess.Popen(str(cmd),stderr=subprocess.PIPE,stdout=subprocess.PIPE,shell=True)
        stdout, stderr = screenExecute.communicate()
        # 輸出執行命令結果結果
        stdout = stdout.decode("utf-8")
        stderr = stderr.decode("utf-8")
        print(stdout)
        print(stderr)

    def saveComputer(self,cmd):#將截圖儲存到電腦
        screenExecute = subprocess.Popen(str(cmd), stderr=subprocess.PIPE, stdout=subprocess.PIPE, shell=True)
        stdout, stderr = screenExecute.communicate()
        stdout = stdout.decode("utf-8")
        stderr = stderr.decode("utf-8")
        # 輸出執行命令結果結果
        stdout = stdout.decode("utf-8")
        stderr = stderr.decode("utf-8")
        print(stdout)
        print(stderr)

cmd1=r"adb shell /system/bin/screencap -p /sdcard/3.png"       #命令1:在手機上截圖3.png為圖片名
cmd2=r"adb pull /sdcard/3.png d:/3.png"                        #命令2:將圖片儲存到電腦 d:/3.png為要儲存到電腦的路徑
screen=Screenshot()
screen.screen(cmd1)
screen.saveComputer(cmd2)