中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用python制作一個解壓縮軟件

發布時間:2020-10-07 00:32:40 來源:腳本之家 閱讀:213 作者:Woo_home 欄目:開發技術

python實現解壓縮的重要模塊就是——zipfile,其次是os

安裝zipfile模塊

首先得安裝zipfile模塊,打開cmd輸入一下命令即可安裝

pip install zipfile

使用python制作一個解壓縮軟件

os是python自帶的庫,所以無需另外安裝,直接 import 即可

編寫核心代碼

壓縮文件核心代碼:

def zip_file():
  zip_name = path.get() +'.zip'              # 獲取絕對路徑然后給壓縮文件加上.zip結尾   
  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()                        # 關閉資源,以免占用內存
  zip_file_message()                   # 調用zip_file_message彈出信息框

解壓文件核心代碼:

def unzip_file():
  r = zipfile.is_zipfile(filename.get())     # 判斷是否為壓縮文件以.zip為判斷依據
  if r:                      # 如果是則執行if里面的語句,如果不是執行else里面的語句
    fz = zipfile.ZipFile(filename.get(), 'r')  # 讀取壓縮文件
    for file in fz.namelist():         # 遍歷文件
      fz.extract(file, outputfile.get())   # 輸出文件
    unzip_file_message()            # 調用unzip_file_message彈出信息框
  else:
    failed()                  # 調用failed彈出信息框

以上基本可以實現文件的解壓和壓縮了,但是如果想給別人也能使用呢?比如你想發給你女朋友使用,但是她的電腦沒有安裝python環境,安裝又顯得麻煩那怎么弄?沒事,我們可以結合tkinter圖形界面來整合一下

安裝tkinter模塊

tkinter是一個圖形界面的模塊,類似的有pyqt,感興趣的朋友可以去網上了解一下

安裝tkinter,只需使用下面的命令即可安裝

pip install tkinter

使用python制作一個解壓縮軟件

安裝成功后,導入我們需要使用的組件

from tkinter import *            # 導入tkinter的所有組件          
from tkinter.filedialog import askdirectory # 導入目錄操作庫
import tkinter.messagebox          # 彈出消息框
import tkinter.filedialog          # 導入操作文件的庫

整合代碼

然后整合上面兩個核心代碼

既然要有圖形界面,首先得有界面是吧

root = Tk()       # 初始化
root.mainloop()     # 顯示窗口

使用python制作一個解壓縮軟件

有了界面之后就是把組件(按鈕,標簽,輸入框)噼里啪啦的加上去就行了,這里就不具體描述了

具體代碼實現:

from tkinter import *            # 導入tkinter的所有組件          
from tkinter.filedialog import askdirectory # 導入目錄操作庫
import tkinter.messagebox          # 彈出消息框
import tkinter.filedialog          # 導入操作文件的庫

# 界面代碼實現
def main():

  # label標簽 grid括號中的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標簽
  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標簽
  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()          # 調用main函數

最終的界面實現如下:


使用python制作一個解壓縮軟件

效果展示

使用python制作一個解壓縮軟件

比如我們現在壓縮一個400M的文件在這里插入圖片描述

使用python制作一個解壓縮軟件

壓縮之后的文件大小為:

使用python制作一個解壓縮軟件

壓縮的速度還是挺快的,對比一下RAR壓縮之后的大小

使用python制作一個解壓縮軟件

可以看到RAR壓縮的好像更小點,但是無太大差別,且壓縮速度上RAR要慢一點。反正這是我們自己做的,能做到這樣也挺不錯了是吧

安裝pyinstaller模塊

編寫完代碼之后就是將代碼進行打包了,打包需要用到的模塊就是 pyinstaller ,安裝該模塊也是非常簡單,只需要使用下面的命令

pip install pyinstaller

打包程序為可執行文件

安裝成功之后再次輸入命令進行打包

pyinstaller -F -w 你的文件名.py

打包了,打包需要用到的模塊就是 pyinstaller ,安裝該模塊也是非常簡單,只需要使用下面的命令

pip install pyinstaller

打包程序為可執行文件

安裝成功之后再次輸入命令進行打包

pyinstaller -F -w 你的文件名.py

然后會在dist目錄下生成一個 “你的文件名的.exe” 的可執行文件,那就大功告成了

總結

以上所述是小編給大家介紹的使用python制作一個解壓縮軟件,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對億速云網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

象山县| 夏河县| 莆田市| 游戏| 吉首市| 嘉禾县| 泰州市| 朝阳市| 萨嘎县| 遂平县| 南和县| 江孜县| 兴和县| 青岛市| 六枝特区| 宁安市| 揭东县| 石泉县| 新民市| 含山县| 南宁市| 云安县| 长沙县| 若尔盖县| 阜康市| 朝阳区| 外汇| 石屏县| 天柱县| 澄迈县| 平南县| 三门县| 手机| 深圳市| 枞阳县| 宁安市| 苗栗县| 和平县| 苏州市| 清新县| 阿克陶县|