使用python制作一個(gè)解壓縮軟件
python實(shí)現(xiàn)解壓縮的重要模塊就是——zipfile,其次是os
安裝zipfile模塊
首先得安裝zipfile模塊,打開cmd輸入一下命令即可安裝
pip install zipfile
os是python自帶的庫(kù),所以無(wú)需另外安裝,直接 import 即可
編寫核心代碼
壓縮文件核心代碼:
def zip_file(): zip_name = path.get() +'.zip' # 獲取絕對(duì)路徑然后給壓縮文件加上.zip結(jié)尾 z = zipfile.ZipFile(zip_name,'w',zipfile.ZIP_DEFLATED) # 寫入.zip for dirpath, dirnames, filenames in os.walk(path.get()):# 使用os遍歷目錄路徑,目錄名,文件名 fpath = dirpath.replace(path.get(),'') # 獲取目錄路徑 fpath = fpath and fpath + os.sep or '' for filename in filenames: # 迭代文件名 z.write(os.path.join(dirpath, filename),fpath+filename) # 寫入 z.close() # 關(guān)閉資源,以免占用內(nèi)存 zip_file_message() # 調(diào)用zip_file_message彈出信息框
解壓文件核心代碼:
def unzip_file(): r = zipfile.is_zipfile(filename.get()) # 判斷是否為壓縮文件以.zip為判斷依據(jù) if r: # 如果是則執(zhí)行if里面的語(yǔ)句,如果不是執(zhí)行else里面的語(yǔ)句 fz = zipfile.ZipFile(filename.get(), 'r') # 讀取壓縮文件 for file in fz.namelist(): # 遍歷文件 fz.extract(file, outputfile.get()) # 輸出文件 unzip_file_message() # 調(diào)用unzip_file_message彈出信息框 else: failed() # 調(diào)用failed彈出信息框
以上基本可以實(shí)現(xiàn)文件的解壓和壓縮了,但是如果想給別人也能使用呢?比如你想發(fā)給你女朋友使用,但是她的電腦沒有安裝python環(huán)境,安裝又顯得麻煩那怎么弄?沒事,我們可以結(jié)合tkinter圖形界面來(lái)整合一下
安裝tkinter模塊
tkinter是一個(gè)圖形界面的模塊,類似的有pyqt,感興趣的朋友可以去網(wǎng)上了解一下
安裝tkinter,只需使用下面的命令即可安裝
pip install tkinter
安裝成功后,導(dǎo)入我們需要使用的組件
from tkinter import * # 導(dǎo)入tkinter的所有組件 from tkinter.filedialog import askdirectory # 導(dǎo)入目錄操作庫(kù) import tkinter.messagebox # 彈出消息框 import tkinter.filedialog # 導(dǎo)入操作文件的庫(kù)
整合代碼
然后整合上面兩個(gè)核心代碼
既然要有圖形界面,首先得有界面是吧
root = Tk() # 初始化 root.mainloop() # 顯示窗口
有了界面之后就是把組件(按鈕,標(biāo)簽,輸入框)噼里啪啦的加上去就行了,這里就不具體描述了
具體代碼實(shí)現(xiàn):
from tkinter import * # 導(dǎo)入tkinter的所有組件 from tkinter.filedialog import askdirectory # 導(dǎo)入目錄操作庫(kù) import tkinter.messagebox # 彈出消息框 import tkinter.filedialog # 導(dǎo)入操作文件的庫(kù) # 界面代碼實(shí)現(xiàn) def main(): # label標(biāo)簽 grid括號(hào)中的row代表你的label是放在第幾行,column是放在第幾列 Label(root,text = "壓縮目錄路徑:").grid(row = 0, column = 0) # Entry是獲取輸入 Entry(root, textvariable = path).grid(row = 0, column = 1) # 操作按鈕 Button(root, text = "目錄選擇", command = selectPath).grid(row = 0, column = 2) # Label標(biāo)簽 Label(root,text = "解壓目錄路徑:").grid(row = 1, column = 0) # Entry是獲取輸入 Entry(root, textvariable = filename).grid(row = 1, column = 1) # 操作按鈕 Button(root, text = "文件選擇", command = selectFile).grid(row = 1, column = 2) # Label標(biāo)簽 Label(root,text = "解壓到:").grid(row = 2, column = 0) # Entry是獲取輸入 Entry(root, textvariable = outputfile).grid(row = 2, column = 1) # 操作按鈕 Button(root, text = "解壓路徑選擇", command = outputFlie).grid(row = 2, column = 2) # 操作按鈕 Button(root,text="壓縮文件",command=zip_file).grid(row=3,column=0) # 操作按鈕 Button(root,text="解壓文件",command=unzip_file).grid(row=3,column=2) # 操作按鈕 Button(root,text="退出程序",command=root.quit).grid(row=4,column=1) #顯示操作界面 root.mainloop() if __name__ == '__main__': root = Tk() # 初始化 path = StringVar() # 顯示路徑名 filename = StringVar() # 顯示文件路徑名 outputfile = StringVar() # 顯示解壓后的文件路徑名 main() # 調(diào)用main函數(shù)
最終的界面實(shí)現(xiàn)如下:
效果展示
比如我們現(xiàn)在壓縮一個(gè)400M的文件在這里插入圖片描述
壓縮之后的文件大小為:
壓縮的速度還是挺快的,對(duì)比一下RAR壓縮之后的大小
可以看到RAR壓縮的好像更小點(diǎn),但是無(wú)太大差別,且壓縮速度上RAR要慢一點(diǎn)。反正這是我們自己做的,能做到這樣也挺不錯(cuò)了是吧
安裝pyinstaller模塊
編寫完代碼之后就是將代碼進(jìn)行打包了,打包需要用到的模塊就是 pyinstaller ,安裝該模塊也是非常簡(jiǎn)單,只需要使用下面的命令
pip install pyinstaller
打包程序?yàn)榭蓤?zhí)行文件
安裝成功之后再次輸入命令進(jìn)行打包
pyinstaller -F -w 你的文件名.py
打包了,打包需要用到的模塊就是 pyinstaller ,安裝該模塊也是非常簡(jiǎn)單,只需要使用下面的命令
pip install pyinstaller
打包程序?yàn)榭蓤?zhí)行文件
安裝成功之后再次輸入命令進(jìn)行打包
pyinstaller -F -w 你的文件名.py
然后會(huì)在dist目錄下生成一個(gè) “你的文件名的.exe” 的可執(zhí)行文件,那就大功告成了
總結(jié)
以上所述是小編給大家介紹的使用python制作一個(gè)解壓縮軟件,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
- Python腳本破解壓縮文件口令實(shí)例教程(zipfile)
- 詳解Python 解壓縮文件
- Python實(shí)現(xiàn)壓縮文件夾與解壓縮zip文件的方法
- python下解壓縮zip文件并刪除文件的實(shí)例
- Python實(shí)現(xiàn)壓縮和解壓縮ZIP文件的方法分析
- Python實(shí)現(xiàn)向服務(wù)器請(qǐng)求壓縮數(shù)據(jù)及解壓縮數(shù)據(jù)的方法示例
- 使用Python讀寫及壓縮和解壓縮文件的示例
- Python壓縮解壓縮zip文件及破解zip文件密碼的方法
- 使用Python壓縮和解壓縮zip文件的教程
- Python壓縮和解壓縮zip文件
- python 實(shí)現(xiàn)壓縮和解壓縮的示例
相關(guān)文章
Python使用Selenium執(zhí)行JavaScript代碼的步驟詳解
Selenium是一個(gè)用于自動(dòng)化瀏覽器操作的工具,可以模擬人工操作,執(zhí)行各種瀏覽器操作,而JavaScript是一種常用的腳本語(yǔ)言,本文將介紹如何在Python中使用Selenium執(zhí)行JavaScript代碼,并給出一些常見的應(yīng)用示例2023-11-11Python 注解方式實(shí)現(xiàn)緩存數(shù)據(jù)詳解
這篇文章主要介紹了Python 注解方式實(shí)現(xiàn)緩存數(shù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2021-10-10使用Python的開發(fā)框架Brownie部署以太坊智能合約
在本文中,我們將使用Python部署智能合約。這篇文章可能是您走向智能合約和區(qū)塊鏈開發(fā)的橋梁!2021-05-05Pytorch之8層神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)Cifar-10圖像分類驗(yàn)證集準(zhǔn)確率94.71%
這篇文章主要介紹了Pytorch之8層神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)Cifar-10圖像分類驗(yàn)證集準(zhǔn)確率94.71%問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03