日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

python判断sqlite连接状态_python3 自动识别usb连接状态,即对usb重连的判断方法

發(fā)布時(shí)間:2025/4/16 python 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python判断sqlite连接状态_python3 自动识别usb连接状态,即对usb重连的判断方法 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

在做自動(dòng)化測(cè)試時(shí),遇到兩種情況需要判斷usb是否已連接上(注,本文僅針對(duì)用adb命令來(lái)control手機(jī))

一種是在開(kāi)測(cè)時(shí)(前提是同時(shí)要測(cè)試多臺(tái)), 希望等待所有設(shè)備usb全部識(shí)別后同時(shí)進(jìn)行測(cè)試。對(duì)于這一種,當(dāng)然是可以另開(kāi)一個(gè)窗口不斷的輸入adb devices來(lái)檢測(cè),但不夠AI。

一種是在測(cè)試過(guò)程中有時(shí)usb會(huì)自動(dòng)斷開(kāi),這時(shí)如果不判斷usb是否有重新連接的話(huà),則測(cè)試還會(huì)往下執(zhí)行,測(cè)試指定是失敗的。

第一種情況:其思路還是要利用adb devices來(lái)不斷的獲取當(dāng)前已連接的設(shè)備id。

1.先獲取一個(gè)devlist, 并計(jì)算當(dāng)前已連接的設(shè)備數(shù).

2.利用while循環(huán),當(dāng)重新獲取一個(gè)devlist時(shí),其設(shè)備數(shù)大于之前的設(shè)備數(shù),則遍歷new devlist,當(dāng)new device不在old devlist里時(shí),就print出deviceid, 即實(shí)現(xiàn)了對(duì)usb的實(shí)時(shí)識(shí)別并打印了.

具體實(shí)現(xiàn)如下:

import os

from time import sleep

# 獲取設(shè)備id列表

def getdevlist():

devlist = []

connectfile = os.popen('adb devices')

list = connectfile.readlines()

# print(list)

for i in range(len(list)):

if list[i].find('\tdevice') != -1:

temp = list[i].split('\t')

devlist.append(temp[0])

return devlist

connectdevice = input('請(qǐng)輸入每次要同時(shí)連接的設(shè)備數(shù):')

number = int(connectdevice.strip())

while True:

lists = getdevlist()

devnum = len(lists)

id = 1

tempdevlist = getdevlist()

if devnum < number:

print(f'\n設(shè)備未全部識(shí)別,應(yīng)識(shí)別{number}臺(tái)設(shè)備!\n當(dāng)前已識(shí)別{devnum}臺(tái)設(shè)備,請(qǐng)連接設(shè)備并等待識(shí)別:\n\n')

for i in range(devnum):

print(f'設(shè)備{id}: {lists[i]}')

id = id + 1

# 等待識(shí)別所有設(shè)備

while devnum < number:

lists = getdevlist()

curnum = len(lists)

if curnum > devnum:

for i in range(len(lists)):

if lists[i] not in tempdevlist:

print(f'設(shè)備{id}: {lists[i]}')

id = id + 1

tempdevlist = getdevlist()

devnum = curnum

print(f'\n所有設(shè)備已全部識(shí)別!當(dāng)前有連接{len(getdevlist())}臺(tái)設(shè)備.\n\n')

第二種情況:第二種情況的前提的已知當(dāng)前已連接設(shè)備的deviceid, 這個(gè)不難理解也不難獲取,其思路跟第一種情況也差不太多,不過(guò)我將其封裝成了一個(gè)函數(shù). 應(yīng)用場(chǎng)景其實(shí)在實(shí)際應(yīng)用過(guò)程中,總有那個(gè)一兩個(gè)地方,總會(huì)概率的usb斷開(kāi)然后又自動(dòng)連接上,但這樣就會(huì)執(zhí)行失敗,故對(duì)這樣的概率會(huì)fail的場(chǎng)景先要做到了然于胸,才能在實(shí)適當(dāng)?shù)牡胤疆?dāng)判斷來(lái)進(jìn)行重連,做到代碼簡(jiǎn)潔。

import os

from time import sleep

def reconnectAction(deviceid):

devlist = getdevlist()

print(f'設(shè)備{deviceid}正在嘗試重連.')

id = 1

while deviceid not in devlist:

print(f'第{id}次 ', end = ' ')

devtuple = getdevlist()

id = id + 1

print(f'\n設(shè)備{deviceid}重新建立連接成功.')

sleep(1)

# example:

if __name__ == '__main__':

deviceid = '12lk34fkjaaf'

if clickScreen(openfilemanager, deviceid) != 0:

print(f'{openfilemanager[1]}:執(zhí)行失敗‘)

reconnectAction(deviceid)

clickScreen(openfilemanager, deviceid)

OK, 任務(wù)完成。

以上這篇python3 自動(dòng)識(shí)別usb連接狀態(tài),即對(duì)usb重連的判斷方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專(zhuān)家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結(jié)

以上是生活随笔為你收集整理的python判断sqlite连接状态_python3 自动识别usb连接状态,即对usb重连的判断方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。