(11)-- 简单的压缩解压程序


#压缩软件

#设计界面
import os
import zipfile
import tkinter
import tkinter.filedialog
import tkinter.messagebox
global path
path = '/home/hanbing/test.zip'
root = tkinter.Tk()
root.title('myZipfile1.0')
root.minsize(300,400)

#设置需要压缩的文件路径变量
zipfilename = []

#添加文件的函数
def addfile():
    # 全局化变量
    global zipfilename

    #弹出文件选框
    files = tkinter.filedialog.askopenfilenames(title = '请选择需要压缩的文件')
    #将选择的文件加入列表中
    zipfilename += list(files)


    #将信息组成字符串书写
    filesstr = '\n'.join(zipfilename)

    #将文件信息写入label显式
    label['text'] = filesstr

#压缩文件函数
def zip_file():


    try:
        path = '/home/hanbing/test.zip'

        # 判断压缩文件是否创建成功
        if os.path.exists(path):

            tkinter.messagebox.showinfo(title='信息', message='文件压缩成功:' + path)

        else:

            tkinter.messagebox.showerror(title='错误', message='压缩文件创建失败!' + path)

    except PermissionError:

        path = '/home/hanbing/test.zip'
        if os.path.exists(path):
            tkinter.messagebox.showinfo(title='信息', message='文件压缩成功:' + path)

        else:
            tkinter.messagebox.showerror(title='错误', message='压缩文件创建失败!' + path)

    #打开或者创建压缩文件
    zp = zipfile.ZipFile(path,'w')


    #添加文件
    for filename in zipfilename:
        zp.write(filename,os.path.basename(filename))
    #关闭压缩文件
    zp.close()




#解压文件函数
def unzip_file():
    #选择需要解压的文件
    zipfilepath = tkinter.filedialog.askopenfilename()
    #选择解压的路径
    unzipfilepath = tkinter.filedialog.askdirectory()

    #解压操作
    zp = zipfile.ZipFile(zipfilepath)
    #解压所有
    zp.extractall(unzipfilepath)
    #关闭文件
    zp.close()

    #判断是否解压成功
    if os.path.exists(path):

        tkinter.messagebox.showinfo(title='信息', message='文件解压成功:' + path)

    else:

        tkinter.messagebox.showerror(title='错误', message='压缩文件解压失败!' + path)


#摆放按钮
btn_add = tkinter.Button(root,text = '添加文件',command = addfile)
btn_add.place(x = 20,y = 20)

btn_zip = tkinter.Button(root,text = '压缩文件',command = zip_file)
btn_zip.place(x = 110 ,y =20)

btn_unzip = tkinter.Button(root,text = '解压文件',command = unzip_file)
btn_unzip.place(x = 200 , y =20)

#显示信息区域
label = tkinter.Label(root,text = '暂时没有文件信息',bg = 'white',anchor = 'nw',justify = 'left')
label.place(x = 20, y = 70,width = 260 , height = 310)




root.mainloop()





兄弟连学python


Python学习交流、资源共享群:563626388 QQ


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值