python 之tkinter 用zipfile模块实现简易的压缩解压文件

import tkinter
import tkinter.filedialog
import zipfile
import os
import tkinter.messagebox
root=tkinter.Tk()

root.minsize(350,400)



button1=tkinter.Button(root,text='选择')
button1.place(x=20,y=20)

button2=tkinter.Button(root,text='压缩')
button2.place(x=150,y=20)
button3=tkinter.Button(root,text='解压')
button3.place(x=280,y=20)

label=tkinter.Label(root,text='名称')
label.place(x=20,y=60)

label1=tkinter.Label(root,font=('微软雅黑',10),bg='pink',anchor="nw",text='')
label1.place(x=20,y=80,width=310,height=300)
#选择需要压缩的文件
def fileSelect(e):

    filepath=tkinter.filedialog.askopenfilename(title='选择压缩文件',filetypes=(('所有文件','*.*'),))

    label1['text']=label1['text']+'\n'+filepath
    # print(label1['text'][1:].splitlines())
    # print(label1['text'])
#压缩文件
def fileSave(e):
    path=tkinter.filedialog.asksaveasfilename(title='压缩到',initialdir='filepath',filetypes=(('zip文件','*.zip.'),),initialfile='压缩文件')
    print(path)
    if path=='':
        return
    if label1['text']=='':
        tkinter.messagebox.showinfo(message='请选择要压缩文件')
        # fileSelect(e)
        return
#选择要压缩到哪里
    zp=zipfile.ZipFile(path+'.zip','w')
    for i in label1['text'][1:].splitlines():
        #将要压缩的文件写入压缩的.zip文件中
        zp.write(i,os.path.basename(i))
    zp.close()
    tkinter.messagebox.showinfo(message='压缩成功')
    label1['text']=''


#解压文件
def fileDecompression(e):
    if tkinter.messagebox.askokcancel(title='请选择需要解压的zip文件')==True:

        path_zip=tkinter.filedialog.askopenfilename(title='选择要解压的文件')

        if path_zip=='':
            return
    else:
        return

    # print(path_zip,type(path_zip))
    if tkinter.messagebox.askokcancel(title='请选择文件解压到哪里')==True:

        path=tkinter.filedialog.askdirectory(title='解压到')
        print(path)


    else:
        return
    # print(path,type(path))
    #选择需要解压的文件
    zp=zipfile.ZipFile(path_zip,'r')
    print(zp)
    #解压到需要的位置
    zp.extractall(path)
    zp.close()
    tkinter.messagebox.showinfo(message='解压成功')

button1.bind('',fileSelect)
button2.bind('',fileSave)
button3.bind('',fileDecompression)
root.mainloop()













你可能感兴趣的:(python 之tkinter 用zipfile模块实现简易的压缩解压文件)