importtkinterimporttkinter.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 判...