Python实现自动检测USB接口,并copyU盘文件--李渣渣(lizaza.cn)


技术要点分析:

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 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM