파이썬 멀티 디바이스 패키지 설치 응용 프로그램
강령
1 # 으로 / usr / bin / env를 파이썬! 2 # - * - 인코딩 : UTF-8 - * - 3 수입 OS 4 수입 시간 5 에서 다중 처리 수입 풀 6 목록 = [] 7 8 DEF getDevicesAll () : 9 # 获取장치数量和名称 10 개 소자 = [] (11) 시도 : 12 대 dName_ 에 일은 os.popen ( " ADB 장치 " ) (13) 의 경우 " \의 t" 에서 dName_ : 14 경우 dName_.find ( " 에뮬레이터 " ) < 0 : 15 devices.append (dName_.split ( " \의 t " ) [0]) (16) devices.sort (CMP = 없음, 키 = 없음, 반전되지 = 거짓) 17 인쇄 (장치) (18) 를 제외한 : 19 개 패스 (20) 출력 (U " \ n设备名称% S \ n总数量% S台" % (장치 LEN (장치))) 21 개 반송 장치 (22) (23) DEFquickinstall (장치) 24 패키지 이름 = " com.ishugui " 25 # 卸载原有APK 26 시도 : 27 28 os.system을 ( ' ADB -s ' + 장치 + ' 제거 % S ' % 패키지 이름) 29 os.system을 ( ' ADB -s ' + 장치 + ' 제거 % S ' % 패키지 이름) 30 인쇄 (장치 + " 成功n \卸载" ) (31) 를 제외한 : 32 인쇄 (+ 장치 " 제거가 \ N- 실패 " ) (33)가 34 인 은 try : 35 인쇄 ( ' ----- ----- 목록 ' , 목록) 36 [37 에 대한 I 에서 목록 : 38입니다 os.system을 ( ' 아시아 개발 은행 -s는 ' + + 장치 ' 설치 ' + I) (39) (40) 를 제외하고 : 41입니다 인쇄 (+ 장치 " 설치 \ N- 실패 " ) (42)는 인쇄 (+ 장치 "성공적으로 설치 \ N- " ) (43)는 44가된다 DEF (장치)가 qainstall : 45 startTime을가 = 로 time.time () 46이다 풀 = 풀 (2) # 생성 여덟 개 태스크 풀 (47) 결과 = pool.map (QuickInstall 디바이스) 48 ENDTIME = 로 time.time () 49 pool.close () 50 pool.join ()는 (51)는 인쇄 (endtime에-startTime을) #의 인쇄 시간 (52)이 53 DEF get_apk (파일명) 54 글로벌 목록을 55 # filesname = 'F : / 다운로드 / APK' 56 #설치 패키지 구하는 57을 인쇄 (filesname) (58) 에 대한 부모 dirnames, filnames 에서 : os.walk (filesname) 59 대 FILNAME 에 filnames : 60 경로 = os.path.join (부모 FILNAME) 61 인 list.append (경로) (62)는 인쇄 ( " ----- 목록 ' ,리스트) (63)는 창 목록을 64 65 # 패킷 경로 66 filesname = ' F : / 다운로드 / APK ' 67 #은 설치 패키지를 획득 68 프린트(filesname) (69) 에 대한 부모 dirnames, filnames 에 os.walk (filesname) 70 대 filname 에 filnames : 71 경로 = os.path.join (부모 filname) 72 list.append (경로) (73) 인쇄 ( ' - --- -----리스트 ' ,리스트) (74) (75) (76) 의 경우 __name__ == " __main__ " : 77 78 filesname = ' F / 다운로드 / APK ' 79 목록 = get_apk (filesname) (80) (81) 은 try : 82 개 기기 = getDevicesAll () (83) 를 제외하고 : 84 인쇄 ( " 장치 오류하세요 " ) 85 RES = 입력 ( " 시작 업데이트 1 입력 " ) 86 87 IF INT (RES) == 1 : 88 은 try : 89 qainstall (장치) 90 제외 : 91 인쇄 ( " 업데이트 실패 " ) (92) # 터치 (장치)