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

技术要点分析:

1、监控USB端口,判断是否有U盘插入

2、copyU盘数据到本地

所需库:

import psutil # 监控系统状态
import shutil # copy文件
完整代码:
# -*- coding:utf-8 -*-
import psutil
import sys
import os
import shutil
import time

local_device = []
mobile_device = []
local_number = 0
mobile_number = 0
SAVE_path = ["D:\\cs", 0]


# 更新usb端口状态
def update():
    tmp_local_number = 0
    tmp_mobile_number = 0
    try:
        part = psutil.disk_partitions()
    except:
        # print("程序异常")
        sys.exit()
    for i in range(len(part)):
        tmp_list = part[i].opts.split(',')
        if "fixed" in tmp_list:
            tmp_local_number = tmp_local_number + 1
            local_device.append(part[i].device)
        elif "removable" in tmp_list:
            tmp_mobile_number = tmp_mobile_number + 1
            mobile_device.append(part[i].device)
            pass
        pass
    return [len(part), tmp_local_number, tmp_mobile_number]


# 复制文件
def copy_file(USB_path):
    save_path = "D:\\cs"+str(int(time.time()))
    if os.path.exists(USB_path):
        try:
            shutil.copytree(USB_path, save_path)
        except:
            pass
    else:
        time.sleep(10)


if __name__ == '__main__':
    data = update()
    now_local_number = 0
    now_mobile_number = 0
    before_number = data[0]
    local_number = data[1]
    mobile_number = data[2]
    now_number = 0
    while True:
        data = update()
        now_number = data[0]
        now_local_number = data[1]
        now_mobile_number = data[2]
        if now_mobile_number > mobile_number:
            if len(mobile_device):
                copy_file(mobile_device[-1])
            else:
                pass
            before_number = now_number
            local_number = now_local_number
            mobile_number = now_mobile_number
        elif now_mobile_number < mobile_number:
            before_number = now_number
            local_number = now_local_number
            mobile_number = now_mobile_number
            pass
        time.sleep(5)

转载:该文章转自https://www.lizaza.cn

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值