Python小程序編程實(shí)現(xiàn)一鍵自動(dòng)整理文件解壓文件
前言
什么是效率?簡(jiǎn)單就是效率!但是想要自己做的小程序足夠美觀可不是一件簡(jiǎn)單的事。一開(kāi)始想做個(gè)小程序思路就是有個(gè)普通的button,一鍵使用就好了。但是寫(xiě)下來(lái)還是發(fā)現(xiàn)沒(méi)用前端和結(jié)構(gòu)話的編程后期維護(hù)很麻煩,所以以后的程序格式都應(yīng)該盡量符合業(yè)界規(guī)范。世界上那么多種解決問(wèn)題的方法,為什么大家都認(rèn)可那么一兩鐘?肯定是有他的道理的。好了廢話不多說(shuō),現(xiàn)在開(kāi)始設(shè)計(jì)我們的小程序。
一、小程序構(gòu)建思路
1.需求
首先我們先確定需求:
我們需要一個(gè)可以選擇目錄,自動(dòng)處理該目錄下面的文件。我們知道文件它是有類型的,而我們可以通過(guò)文件的后綴名稱來(lái)分類。其中有txt、json、pdf、word等。
第二個(gè)需求能夠選中解壓文件并且判斷該文件是否為壓縮文件,是壓縮文件則進(jìn)行解壓。
以上就是我們寫(xiě)這個(gè)小程序的目的。
2.技術(shù)
首先我們肯定Python進(jìn)行編程,需要用到其他的庫(kù)。其中我們需要一個(gè)界面可以進(jìn)行交互。該界面可以選擇我們的功能模式。還有一個(gè)選擇目錄的功能,能夠?qū)⒛夸浡窂阶x取并且顯示。那么我們先從界面來(lái)考慮,既然是小程序那就設(shè)計(jì)成窗口的樣子。
第一個(gè)技術(shù)依賴:Python tkinter
該庫(kù)Tkinter 模塊(Tk 接口)是 Python 的標(biāo)準(zhǔn) Tk GUI 工具包的接口 .Tk 和 Tkinter 可以在大多數(shù)的 Unix 平臺(tái)下使用,同樣可以應(yīng)用在 Windows 和 Macintosh 系統(tǒng)里。Tk8.0 的后續(xù)版本可以實(shí)現(xiàn)本地窗口風(fēng)格,并良好地運(yùn)行在絕大多數(shù)平臺(tái)中。 直接安裝該庫(kù)即可:
pip install tkinter
第二個(gè)技術(shù)依賴:os庫(kù)、shutil
shutil是 篇python 中的高級(jí)文件操作模塊,與os模塊形成互補(bǔ)的關(guān)系,os主要提供了文件或文件夾的新建、刪除、查看等方法,還提供了對(duì)文件以及目錄的路徑操作。shutil模塊提供了移動(dòng)、復(fù)制、 壓縮、解壓等操作,恰好與os互補(bǔ),共同一起使用,基本能完成所有文件的操作。是一個(gè)非常重要的模塊。
這些庫(kù)都是python自帶標(biāo)準(zhǔn)庫(kù)里面自帶的,直接引入就行。
第三個(gè)技術(shù)依賴: zipfile
zipfile是python里用來(lái)做zip格式編碼的壓縮和解壓縮的,由于是很常見(jiàn)的zip格式,所以這個(gè)模塊使用頻率也是比較高的。也是自帶的庫(kù),調(diào)用就好。
二、編程實(shí)現(xiàn)
1.引入庫(kù)
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)建出一個(gè)界面,我們需要定義該界面窗口的長(zhǎ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("文件助手")
之后我們要把獲取的路徑顯示出來(lái):
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)一類別文件移動(dò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ù)文件的后綴進(jìn)行歸類:
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個(gè)文件'%count)
最后我們來(lái)設(shè)計(jì)解壓縮功能,這里先對(duì)文件進(jìn)行判斷是否為壓縮文件,之后進(jìn)行解壓到該目錄:
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='這不是壓縮文件')
最后我們?cè)俳o我們的窗口設(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()
大家還可以插入自己想要的圖片,更加美觀:

選擇目錄后自動(dòng)保存路徑顯示:

我們可以進(jìn)行測(cè)試,在測(cè)試目錄下創(chuàng)建不同類型的文件:

選擇目錄分類:

效果:

以上就是Python小程序編程實(shí)現(xiàn)一鍵自動(dòng)整理文件解壓文件的詳細(xì)內(nèi)容,更多關(guān)于Python自動(dòng)整理解壓文件的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
python解決報(bào)錯(cuò)ImportError: Bad git executable.問(wèn)題
這篇文章主要介紹了python解決報(bào)錯(cuò)ImportError: Bad git executable.問(wèn)題。具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06
詳解pyppeteer(python版puppeteer)基本使用
這篇文章主要介紹了詳解pyppeteer(python版puppeteer)基本使用 ,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06
如何在Python函數(shù)執(zhí)行前后增加額外的行為
有的時(shí)候會(huì)需要在函數(shù)前后添點(diǎn)額外的功能(比如過(guò)濾、計(jì)時(shí)等)時(shí),以前總是首先想到裝飾器。最近學(xué)習(xí)了Python的上下文管理器,所以本文就給大家介紹了如何在Python函數(shù)執(zhí)行前后增加額外的行為,有需要的朋友們可以參考借鑒,下面來(lái)一起看看吧。2016-10-10
Pyqt實(shí)現(xiàn)簡(jiǎn)易計(jì)算器功能
這篇文章主要為大家詳細(xì)介紹了Pyqt實(shí)現(xiàn)簡(jiǎn)易計(jì)算器功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05
Tensorflow卷積神經(jīng)網(wǎng)絡(luò)實(shí)例
這篇文章主要為大家詳細(xì)介紹了Tensorflow卷積神經(jīng)網(wǎng)絡(luò)實(shí)例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-05-05

