Python小程序編程實現(xiàn)一鍵自動整理文件解壓文件
前言
什么是效率?簡單就是效率!但是想要自己做的小程序足夠美觀可不是一件簡單的事。一開始想做個小程序思路就是有個普通的button,一鍵使用就好了。但是寫下來還是發(fā)現(xiàn)沒用前端和結(jié)構(gòu)話的編程后期維護很麻煩,所以以后的程序格式都應(yīng)該盡量符合業(yè)界規(guī)范。世界上那么多種解決問題的方法,為什么大家都認(rèn)可那么一兩鐘?肯定是有他的道理的。好了廢話不多說,現(xiàn)在開始設(shè)計我們的小程序。
一、小程序構(gòu)建思路
1.需求
首先我們先確定需求:
我們需要一個可以選擇目錄,自動處理該目錄下面的文件。我們知道文件它是有類型的,而我們可以通過文件的后綴名稱來分類。其中有txt、json、pdf、word等。
第二個需求能夠選中解壓文件并且判斷該文件是否為壓縮文件,是壓縮文件則進行解壓。
以上就是我們寫這個小程序的目的。
2.技術(shù)
首先我們肯定Python進行編程,需要用到其他的庫。其中我們需要一個界面可以進行交互。該界面可以選擇我們的功能模式。還有一個選擇目錄的功能,能夠?qū)⒛夸浡窂阶x取并且顯示。那么我們先從界面來考慮,既然是小程序那就設(shè)計成窗口的樣子。
第一個技術(shù)依賴:Python tkinter
該庫Tkinter 模塊(Tk 接口)是 Python 的標(biāo)準(zhǔn) Tk GUI 工具包的接口 .Tk 和 Tkinter 可以在大多數(shù)的 Unix 平臺下使用,同樣可以應(yīng)用在 Windows 和 Macintosh 系統(tǒng)里。Tk8.0 的后續(xù)版本可以實現(xiàn)本地窗口風(fēng)格,并良好地運行在絕大多數(shù)平臺中。 直接安裝該庫即可:
pip install tkinter
第二個技術(shù)依賴:os庫、shutil
shutil是 篇python 中的高級文件操作模塊,與os模塊形成互補的關(guān)系,os主要提供了文件或文件夾的新建、刪除、查看等方法,還提供了對文件以及目錄的路徑操作。shutil模塊提供了移動、復(fù)制、 壓縮、解壓等操作,恰好與os互補,共同一起使用,基本能完成所有文件的操作。是一個非常重要的模塊。
這些庫都是python自帶標(biāo)準(zhǔn)庫里面自帶的,直接引入就行。
第三個技術(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)建目標(biāo)目錄,并把統(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)一鍵自動整理文件解壓文件的詳細(xì)內(nèi)容,更多關(guān)于Python自動整理解壓文件的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
python解決報錯ImportError: Bad git executable.問題
這篇文章主要介紹了python解決報錯ImportError: Bad git executable.問題。具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-06-06
詳解pyppeteer(python版puppeteer)基本使用
這篇文章主要介紹了詳解pyppeteer(python版puppeteer)基本使用 ,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06
如何在Python函數(shù)執(zhí)行前后增加額外的行為
有的時候會需要在函數(shù)前后添點額外的功能(比如過濾、計時等)時,以前總是首先想到裝飾器。最近學(xué)習(xí)了Python的上下文管理器,所以本文就給大家介紹了如何在Python函數(shù)執(zhí)行前后增加額外的行為,有需要的朋友們可以參考借鑒,下面來一起看看吧。2016-10-10
Tensorflow卷積神經(jīng)網(wǎng)絡(luò)實例
這篇文章主要為大家詳細(xì)介紹了Tensorflow卷積神經(jīng)網(wǎng)絡(luò)實例,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-05-05

