Python小程序編程實現(xiàn)一鍵自動整理文件解壓文件
前言
什么是效率?簡單就是效率!但是想要自己做的小程序足夠美觀可不是一件簡單的事。一開始想做個小程序思路就是有個普通的button,一鍵使用就好了。但是寫下來還是發(fā)現(xiàn)沒用前端和結(jié)構(gòu)話的編程后期維護很麻煩,所以以后的程序格式都應該盡量符合業(yè)界規(guī)范。世界上那么多種解決問題的方法,為什么大家都認可那么一兩鐘?肯定是有他的道理的。好了廢話不多說,現(xiàn)在開始設(shè)計我們的小程序。
一、小程序構(gòu)建思路
1.需求
首先我們先確定需求:
我們需要一個可以選擇目錄,自動處理該目錄下面的文件。我們知道文件它是有類型的,而我們可以通過文件的后綴名稱來分類。其中有txt、json、pdf、word等。
第二個需求能夠選中解壓文件并且判斷該文件是否為壓縮文件,是壓縮文件則進行解壓。
以上就是我們寫這個小程序的目的。
2.技術(shù)
首先我們肯定Python進行編程,需要用到其他的庫。其中我們需要一個界面可以進行交互。該界面可以選擇我們的功能模式。還有一個選擇目錄的功能,能夠?qū)⒛夸浡窂阶x取并且顯示。那么我們先從界面來考慮,既然是小程序那就設(shè)計成窗口的樣子。
第一個技術(shù)依賴:Python tkinter
該庫Tkinter 模塊(Tk 接口)是 Python 的標準 Tk GUI 工具包的接口 .Tk 和 Tkinter 可以在大多數(shù)的 Unix 平臺下使用,同樣可以應用在 Windows 和 Macintosh 系統(tǒng)里。Tk8.0 的后續(xù)版本可以實現(xiàn)本地窗口風格,并良好地運行在絕大多數(shù)平臺中。 直接安裝該庫即可:
pip install tkinter
第二個技術(shù)依賴:os庫、shutil
shutil是 篇python 中的高級文件操作模塊,與os模塊形成互補的關(guān)系,os主要提供了文件或文件夾的新建、刪除、查看等方法,還提供了對文件以及目錄的路徑操作。shutil模塊提供了移動、復制、 壓縮、解壓等操作,恰好與os互補,共同一起使用,基本能完成所有文件的操作。是一個非常重要的模塊。
這些庫都是python自帶標準庫里面自帶的,直接引入就行。
第三個技術(shù)依賴: zipfile
zipfile是python里用來做zip格式編碼的壓縮和解壓縮的,由于是很常見的zip格式,所以這個模塊使用頻率也是比較高的。也是自帶的庫,調(diào)用就好。
二、編程實現(xiàn)
1.引入庫
from tkinter import * import os from tkinter.filedialog import askdirectory from tkinter.filedialog import askopenfilename from tkinter import messagebox import shutil import zipfile
2.窗口調(diào)整
首先創(chuàng)建出一個界面,我們需要定義該界面窗口的長和寬,以及窗口名稱和窗口展示位置:
app=Tk() app_w=app.winfo_screenwidth() app_h=app.winfo_height() width=350 heigh=260 x=(app_w-width)/2 y=(app_h-heigh)/2 app.geometry('350x260+600+300') #app.geometry("%dx%d+%d+%d" % (width,heigh,x,y)) app.title("文件助手")
之后我們要把獲取的路徑顯示出來:
Label(app,text='picture',image=photo).pack() Label(app,text='文件助手',font={'Airal',20,'bold'}).place(x=140,y=1,anchor='nw') lable_path=Label(app,name='path') lable_path.place(x=85,y=90,anchor='nw') f_name=''
3.選擇目錄
選擇目錄后,保存目錄的路徑
def select_dir(): global f_name f_name = askdirectory() lable_path['text']=f_name
獲取文件目錄和文件名稱,創(chuàng)建目標目錄,并把統(tǒng)一類別文件移動到該目錄:
def clean(f): forder_name = f_name + '/' + f.split('.')[-1] file_name = f_name + '/' + f if not os.path.exists(forder_name): os.makedirs(forder_name) elif os.path.exists(forder_name + '/' + f): return else: shutil.move(file_name,forder_name)
根據(jù)文件的后綴進行歸類:
def sort(): count=0 for f in os.listdir(f_name): if '.' in f: clean(f) count += 1 messagebox.showinfo(title='提示',message='你已經(jīng)成功整理了%d個文件'%count)
最后我們來設(shè)計解壓縮功能,這里先對文件進行判斷是否為壓縮文件,之后進行解壓到該目錄:
def unzip_file(): zip_name = askopenfilename()#壓縮包名 r = zipfile.is_zipfile(zip_name) if r: fz = zipfile.ZipFile(zip_name) for file in fz.namelist(): print(file) fz.extract(file, f_name) messagebox.showinfo(title='提示', message='已解壓該文件') else: messagebox.showinfo(title='提示', message='這不是壓縮文件')
最后我們再給我們的窗口設(shè)定按鈕接口:
bt1=Button(app,text='選擇目錄',command=select_dir) bt1.place(x=50,y=170,anchor='nw') bt1=Button(app,text='整理文件',command=sort) bt1.place(x=145,y=170,anchor='nw') bt1=Button(app,text='解壓文件',command=unzip_file) bt1.place(x=235,y=170,anchor='nw') app.mainloop()
大家還可以插入自己想要的圖片,更加美觀:
選擇目錄后自動保存路徑顯示:
我們可以進行測試,在測試目錄下創(chuàng)建不同類型的文件:
選擇目錄分類:
效果:
以上就是Python小程序編程實現(xiàn)一鍵自動整理文件解壓文件的詳細內(nèi)容,更多關(guān)于Python自動整理解壓文件的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python os.listdir與os.walk實現(xiàn)獲取路徑詳解
這篇文章主要介紹了Python使用os.listdir和os.walk獲取文件路徑,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2022-10-10Python數(shù)據(jù)庫sqlite3圖文實例詳解
SQLite是一個進程內(nèi)的庫,實現(xiàn)了自給自足的、無服務器的、零配置的、事務性的SQL數(shù)據(jù)庫引擎,下面這篇文章主要給大家介紹了關(guān)于Python數(shù)據(jù)庫sqlite3的相關(guān)資料,需要的朋友可以參考下2022-09-09Python 找出出現(xiàn)次數(shù)超過數(shù)組長度一半的元素實例
這篇文章主要介紹了Python 找出出現(xiàn)次數(shù)超過數(shù)組長度一半的元素實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05Python 模擬動態(tài)產(chǎn)生字母驗證碼圖片功能
這篇文章主要介紹了Python 模擬動態(tài)產(chǎn)生字母驗證碼圖片,這里給大家介紹了pillow模塊的使用,需要的朋友可以參考下2019-12-12