当前位置: 首页 > news >正文

【练习】检测U盘并自动复制内容到电脑的软件

软件作用:
    有U盘插在电脑上后,程序会检测到U盘的路径。
    自己可以提前设置一个保存复制文件的路径或者使用为默认保存的复制路径(默认为桌面,可自行修改)。
    检测到U盘后程序就会把U盘的文件复制到电脑对应的文件夹内。没有任何提示。
    目前应该还存在一些问题,但是简单的使用是可以满足。
    本机测试没多大问题。当然我的U盘有限,电脑有限,没经过充分的测试,不确保在其他电脑上可以正常运行。

除开功能,目前已知的问题:
  1、当在运行时关闭窗口会出现程序未响应会卡十几秒然后结束掉程序。
  2、默认保存路径不显示在界面上


后面会持续优化一下,并打包成exe文件,然后可以设置为开机自启动,这样就不用每次手动操作。

以下是源码:

import os
import shutil
import psutil
import tkinter
from tkinter import filedialog#author==龙华#主窗口创建
win=tkinter.Tk()
win.title('共享U盘')
win.geometry('300x200')#桌面文件夹浏览,点击浏览可以在电脑上进行选择
def liulan_button():filename=filedialog.askdirectory()liulan.delete(0,tkinter.END)liulan.insert(0,filename)#确定按钮执行动作,确定最终复制路径,启动复制函数
def qdbutton_click():fina_path=updata_path()copy_files_from_usb(fina_path)#从U盘复制到自己电脑上
def copy_files_from_usb(fina_path):usb=get_usb_drive()for x in usb:usb_path = x# 遍历U盘中的文件和文件夹for foldername, subfolders, filenames in os.walk(usb_path):for filename in filenames:# 构建源文件路径和目标文件路径source_file = os.path.join(foldername, filename)destination_file = os.path.join(fina_path, filename)# 复制文件shutil.copy(source_file, destination_file)print(f"已复制文件:{filename}-{fina_path}")print("复制完成")#获取u盘路径
def get_usb_drive():# 获取所有磁盘分区partitions = psutil.disk_partitions()li=[]# 遍历磁盘分区,查找U盘for partition in partitions:if 'removable' in partition.opts: #包含removable为U盘# 获取U盘路径usb_drive = partition.mountpoint[0:2]# s=usb_drive[0:2]li.append(usb_drive)return li#确定最终的路径,如果不填路径则默认新建一个,如果浏览选择则使用新路径
def updata_path():new_path=liulan.get()if not new_path:new_path=moren_pathif not os.path.exists(new_path):os.makedirs(moren_path)return new_path#默认路径设置,默认放在桌面
moren_path=tkinter.StringVar()
moren_path.set(r'C:\Users\Administrator\Desktop\共享U盘文件')  #可修改默认路径
moren_path=moren_path.get()#获取默认路径#创建浏览选择窗口
liulan=tkinter.Entry(win, textvariable=moren_path)
liulan.place(x=50,y=55)#创建浏览按钮,绑定浏览函数
liulanButton=tkinter.Button(win,text='浏览',command=liulan_button)
liulanButton.place(x=200,y=50)#创建确定按钮,绑定复制函数
quedingButton=tkinter.Button(win,text='确定',command=qdbutton_click,width=10,height=1)
quedingButton.place(x=80,y=100)#author==longhua# 测试 实例化
if __name__ == '__main__':win.mainloop()# copy_files_from_usb(quedingButton)

相关文章:

【练习】检测U盘并自动复制内容到电脑的软件

软件作用: 有U盘插在电脑上后,程序会检测到U盘的路径。 自己可以提前设置一个保存复制文件的路径或者使用为默认保存的复制路径(默认为桌面,可自行修改)。 检测到U盘后程序就会把U盘的文件复制到电脑对应的…...

【计算机毕业设计】Springboot高校论文管理系统 -96280,免费送源码,【开题选题+程序定制+论文书写+答辩ppt书写-原创定制程序】

SpringBoot论文管理系统 摘 要 随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,高校当然也不例外。论文管理系统是以实际运用为开发背景,运用软件工程原理和开发方…...

nginx 代理接口报404 问题排查

今天遇到一个nginx代理后端接口请求报404的问题,问题是这样的,后端由于服务器没有环境,但是需要和前端联调,于是采用cpolar内网穿透的方式,穿出来了。但是前端请求跨域,于是前端用nginx代理了一下后端接口&…...

JVM 调优指南

文章目录 为什么要学 JVM一、JVM 整体布局二、Class 文件规范三、类加载模块四、执行引擎五、GC 垃圾回收1 、JVM内存布局2 、 JVM 有哪些主要的垃圾回收器?3 、分代垃圾回收工作机制 六、对 JVM 进行调优的基础思路七、 GC 情况分析实例 JVM调优指南 -- 楼兰 ​ JV…...

澳洲猫罐头如何?我亲自喂养过的优质猫罐头分享

猫罐头要符合三点:营养配方完整均衡、原料新鲜优质、生产工艺科学可靠。只有具备这些特点,才是品质上乘的猫罐头。 猫罐头的三个要素,一个都不能少。配方不均衡,营养就不足;原料不新鲜,生产出来的猫罐头就…...

CISP练习测试题

免责声明 文章仅做经验分享用途,切勿当真,未授权的攻击属于非法行为!利用本文章所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任,一旦造成后果请自行承担!!! 某公司准备在业务环境中部署一种新的计算机产品,下列哪一项…...

2023下半年软件设计师考试知识点大全思维导图

软件设计师考试知识点大全思维导图 2023年下半年第一次机考 复习资料 以上是我在学习过程中根据自己的知识结构的特点及刷到的考题 做的导图,有需要的可以留言发原版的 mmap格式文件 方便自己拓展. 软考资料 这是网上找的资料 汇总免费放在这里 吧![ 链接&#x…...

[C++ 从入门到精通] 12.重载运算符、赋值运算符重载、析构函数

📢博客主页:https://loewen.blog.csdn.net📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!📢本文由 丶布布原创,首发于 CSDN,转载注明出处🙉📢现…...

Android Binder 跨进程通信的优势是什么

Android Binder 跨进程通信的优势是什么 Android Binder 是 Android 系统中用于实现跨进程通信的底层机制,具有以下优势: 高效性:Android Binder 使用共享内存技术,在进程间传递数据时不需要进行数据拷贝,从而提高了传…...

HashMap的详细解读

HashMap是Java语言中的一个重要数据结构,它实现了Map接口,允许我们存储键值对,并且可以根据键直接访问对应的值。 特性 键值对存储:HashMap存储的是键值对数据,可以方便的通过键来获取值。无序:HashMap中…...

10个好用的Mac数据恢复软件推荐—恢复率高达99%

如果您正在寻找最好的 Mac 数据恢复软件来检索意外删除或丢失的文件,那么这里就是您的最佳选择。 我们理解,当您找不到 Mac 计算机或外部驱动器上保存的一些重要文件时,会感到多么沮丧和绝望。这些文件非常珍贵,无论出于何种原因…...

EtherCAT从站EEPROM分类附加信息详解:RXPDO(输入过程数据对象)

0 工具准备 1.EtherCAT从站EEPROM数据(本文使用DE3E-556步进电机驱动器)1 分类附加信息——RXPDO(输入过程数据对象) 1.1 分类附加信息规范 在EEPROM字64开始的区域存储的是分类附加信息,这里存储了包括设备信息、SM配置、FMMU配置在内的诸多信息。每个信息在一段连续的…...

释放锁流程源码剖析

1 释放锁流程概述 ReentrantLock的unlock()方法不区分公平锁还是非公平锁。 首先调用unlock()方法。 unlock()底层使用的是Sync.release(1)方法 public void unlock() {<!-- --> sync.release(1); } release(1)方法会调用tryRelease(1)去尝试解锁。 public fin…...

ComText让机器人有了情节记忆

为了让人类与机器人更好地交流&#xff0c;MIT 计算机科学与人工智能实验室的研究员开发了一个名为 ComText 的程序。这款程序给机器人增加了情节记忆&#xff0c;让它们能够接受更加复杂的命令。目前&#xff0c;他们已经在机器人 Baxter 上测试了程序。 机器人没有情景化的记…...

【Leetcode合集】13. 罗马数字转整数

13. 罗马数字转整数 13. 罗马数字转整数 代码仓库地址&#xff1a; https://github.com/slience-me/Leetcode 个人博客 &#xff1a;https://slienceme.xyz 罗马数字包含以下七种字符: I&#xff0c; V&#xff0c; X&#xff0c; L&#xff0c;C&#xff0c;D 和 M。 字符…...

centos oracle11g开启归档模式

要在 CentOS 上停止 Oracle 11g 数据库&#xff0c;你可以按照以下步骤操作&#xff1a; 1.登录到操作系统 首先&#xff0c;使用具有足够权限的用户登录到 CentOS 操作系统。通常情况下&#xff0c;你需要以具有 oracle 用户权限的用户登录。 使用 SYSDBA 权限连接到数据库…...

【数据结构初阶】双链表

双链表 1.双链表的实现1.1结口实现1.2申请结点1.3初始化双链表1.4打印双链表1.5尾插1.6尾删1.7头插1.8头删1.9计算大小1.10查找1.11pos位置插入1.12删除pos位置1.12删除双链表 全部码源 1.双链表的实现 1.1结口实现 #include<stdio.h> #include<stdlib.h> #inclu…...

Django实战:从零到一构建安全高效的Web应用

目录 一、概述 二、版本控制和部署 1、Git版本控制 2、Docker部署 三、数据库配置 1、配置数据库设置 2、创建数据库模型 四、URL路由和视图 1、定义URL路由 2、创建视图 五、模板渲染 1、创建模板 2、在视图中使用模板 总结 一、概述 Django是一个高级Python W…...

Docker build报错总结,版本过新大避雷!

1.速度太慢报错&#xff0c;需要换源&#xff1b; 在DOCKERFILE中添加镜像&#xff1b; RUN echo "deb http://mirror.sjtu.edu.cn/debian bookworm main non-free contrib" > /etc/apt/sources.list&#xff0c; 2.即使在Dockerfile中换源&#xff0c;但在bul…...

spider 网页爬虫中的 AWS 实例数据获取问题及解决方案

前言 AAWS实例数据对于自动化任务、监控、日志记录和资源管理非常重要。开发人员和运维人员可以通过AWS提供的API和控制台访问和管理这些数据&#xff0c;以便更好地管理和维护他们在AWS云上运行的实例。然而&#xff0c;在使用 spider 框架进行网页爬取时&#xff0c;我们常常…...

3分钟搞定!网盘直链下载助手:一键获取百度阿里等9大网盘真实下载地址

3分钟搞定&#xff01;网盘直链下载助手&#xff1a;一键获取百度阿里等9大网盘真实下载地址 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 &#xff0c;支持 百度网盘 / 阿里云…...

ThinkPad风扇控制终极指南:TPFanCtrl2让你的笔记本更安静高效 [特殊字符]

ThinkPad风扇控制终极指南&#xff1a;TPFanCtrl2让你的笔记本更安静高效 &#x1f680; 【免费下载链接】TPFanCtrl2 ThinkPad Fan Control 2 (Dual Fan) for Windows 10 and 11 项目地址: https://gitcode.com/gh_mirrors/tp/TPFanCtrl2 作为ThinkPad用户&#xff0c;…...

如何永久保存微信聊天记录?WeChatMsg开源工具让你的数字记忆永不丢失

如何永久保存微信聊天记录&#xff1f;WeChatMsg开源工具让你的数字记忆永不丢失 【免费下载链接】WeChatMsg 提取微信聊天记录&#xff0c;将其导出成HTML、Word、CSV文档永久保存&#xff0c;对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Tre…...

探索罗技PUBG压枪宏:从技术原理到实战配置的进阶指南

探索罗技PUBG压枪宏&#xff1a;从技术原理到实战配置的进阶指南 【免费下载链接】logitech-pubg PUBG no recoil script for Logitech gaming mouse / 绝地求生 罗技 鼠标宏 项目地址: https://gitcode.com/gh_mirrors/lo/logitech-pubg 在激烈的《绝地求生》竞技环境中…...

Docketeer:开源Docker管理平台,替代Docker Desktop的轻量级方案

1. 项目概述&#xff1a;从Docker桌面到开源替代的探索如果你是一名开发者、运维工程师&#xff0c;或者任何需要与容器打交道的技术从业者&#xff0c;大概率对Docker Desktop又爱又恨。爱的是它提供了一个图形化的界面&#xff0c;让容器的管理、镜像的构建变得直观&#xff…...

独立开发者如何借助Taotoken以更低成本启动AI应用项目

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 独立开发者如何借助Taotoken以可控成本启动AI应用项目 对于独立开发者或小型团队而言&#xff0c;启动一个AI应用项目&#xff0c;…...

Navicat Mac版无限试用终极指南:3分钟掌握免费重置完整方案

Navicat Mac版无限试用终极指南&#xff1a;3分钟掌握免费重置完整方案 【免费下载链接】navicat_reset_mac navicat mac版无限重置试用期脚本 Navicat Mac Version Unlimited Trial Reset Script 项目地址: https://gitcode.com/gh_mirrors/na/navicat_reset_mac 还在为…...

(可云端)开源APP与小程序双端控制C51单片机,基于ESP8266与MQTT

1. 项目效果与核心原理 想象一下&#xff0c;你躺在沙发上用手机APP就能控制书桌上的单片机小灯&#xff0c;或者在外出时通过微信小程序查看家里的温湿度数据。这个基于ESP8266和MQTT协议的开源方案&#xff0c;就能帮你实现这些酷炫的功能。我去年给自家花盆做的自动浇水系统…...

人工智能逻辑复兴与全球教育变革战略提案

人工智能逻辑复兴与全球教育变革战略提案摘要&#xff1a; 本提案基于贾子哲学&#xff0c;提出《人工智能逻辑复兴支持计划》&#xff0c;终结暴力计算与数据殖民&#xff0c;以“真理硬度”“语义主权”为核心&#xff0c;推动算力霸权降级与公理化革命。分析产业界将经历“物…...

如何快速解除科学文库PDF限制:终极解密教程让你永久拥有学术资料

如何快速解除科学文库PDF限制&#xff1a;终极解密教程让你永久拥有学术资料 【免费下载链接】ScienceDecrypting 破解CAJViewer带有效期的文档&#xff0c;支持破解科学文库、标准全文数据库下载的文档。无损破解&#xff0c;保留文字和目录&#xff0c;解除有效期限制。 项…...