python 9 簡易壓縮軟體

2021-08-14 10:18:14 字數 3653 閱讀 4065

importtkinter

importtkinter.filedialog

importzipfile

importos

importtkinter.messagebox

classysuo:

def__init__(self):

self.root = tkinter.tk()

self.root.title('我的壓縮軟體')

self.root.minsize(300, 300)

self.root.maxsize(400, 400)

self.set_window()

# 宣告乙個列表用於接收檔案路徑

self.messages =

self.root.mainloop()

defset_window(self):

self.open_file = tkinter.button(self.root, text='開啟檔案', command=self.open__file)

self.open_file.place(relx=0.1, rely=0.1, relwidth=0.2, relheight=0.1)

self.zip_file = tkinter.button(self.root, text='壓縮檔案', command=self.zip__file)

self.zip_file.place(relx=0.4, rely=0.1, relwidth=0.2, relheight=0.1)

self.unzip_file = tkinter.button(self.root, text='解壓檔案', command=self.unzip__file)

self.unzip_file.place(relx=0.7, rely=0.1, relwidth=0.2, relheight=0.1)

self.label = tkinter.label(self.root, bg='white', text='', anchor='nw', justify='left')

self.label.place(relx=0.1, rely=0.25, relwidth=0.8, relheight=0.65)

defopen__file(self):

# 彈出檔案對話方塊(用於選擇壓縮檔案)

files = tkinter.filedialog.askopenfilenames(title='請選擇要壓縮的檔案')

# 把選擇的檔案路徑新增到列表

self.messages += list(files)

# 將列表內容組合成字串

ap ='\n'.join(self.messages)

# 讓標籤label 顯示字串內容

self.label['text'] = ap

defzip__file(self):

# 建立乙個壓縮檔案(指定路徑)

# path = 'c:/users/83810/pycharmprojects/untitled/yasuo.zip'

path = tkinter.filedialog.askdirectory()

# print(path)

path1 ='yasuo.zip'lujing = os.path.join(path, path1)

print(lujing)

# print(lujing)

# 建立(或開啟)壓縮檔案

ap = zipfile.zipfile(lujing,'w')

# 遍歷(選擇檔案)列表內容

foriinself.messages:

# 將遍歷的檔案寫入壓縮檔案

ap.write(i, os.path.basename(i))

# 關閉壓縮檔案

ap.close()

# 判斷檔案是否壓縮成功

ifos.path.exists(path):

tkinter.messagebox.showinfo(title='資訊', message='檔案壓縮成功')

else:

tkinter.messagebox.showerror(title='錯誤', message='檔案壓縮失敗')

defunzip__file(self):

# 建立指定選擇解壓檔案的視窗並將選擇的解壓檔案路徑儲存到zipfilepath

zipfilepath = tkinter.filedialog.askopenfilename()

ifos.path.exists(zipfilepath):

# 建立指定解壓路徑的視窗 並將路徑儲存到unzipfilepath

unzipfilepath = tkinter.filedialog.askdirectory()

ifos.path.exists(unzipfilepath):

zp = zipfile.zipfile(zipfilepath)

# 通過解壓函式解壓檔案到指定路徑

zp.extractall(unzipfilepath)

# 關閉解壓檔案

zp.close()

else:

returnelse:

return# 判斷解壓是否成功

ifos.path.exists(unzipfilepath):

tkinter.messagebox.showinfo(title='資訊', message='檔案解壓成功')

else:

tkinter.messagebox.showerror(title='資訊', message='檔案解壓失敗')

a = ysuo()

無需壓縮軟體,用python幫你操作壓縮包

寫在之前 壓縮包是網際網路上軟體發布的標準格式,同時對於系統管理很有用處。當我們需要將多份檔案傳送給別人的時候,最好通過壓縮包的形式傳送,還有在備份某些檔案的時候,為了減少磁碟空間的占用,也需要對備份的資料進行壓縮。python 中有一系列對壓縮包進行處理的工具,包括程式設計客棧建立壓縮包,解壓壓縮...

Python 9「切片和迭代「

我們在對list或者tuple的元素進行取值時,一般的方法是這樣的 l 1,2,3 l 0 l 1 l 2 或者使用迴圈來獲取 l n 2 for i in range n lpython提供了更加簡便的方法能讓我們獲取這些值,那就是切片 slice list 1,2,3,4,5 取list集合中的...

學python(9) 快速排序

第一種 快速排序 defkp ls 判斷要操作的列表長度是否大於1 if len ls 1 如果列表只有乙個數,則直接返回列表 return ls 定義兩個列表儲存相對較大的數和相對較小的數 maxa mina 這次選擇用第乙個數作為分割標準 遍歷除了第乙個資料的列表 for i in ls 1 判...