繁体   English   中英

弄清楚如何使用 python 对文件/文件夹进行 zip

[英]Figuring out how to zip a file/folder using python

我正在学习 python 并且我编写了解压缩文件夹的代码。 因此,我几乎使用了相同的代码并将其重写为 zip 一个文件夹。 我的问题是当我运行代码时。 即使我没有错误,GUI 也不会出现。 我的另一个问题是我不确定我是否正确编写了 def Compress(): 代码?

import zipfile

from tkinter import *
from tkinter import filedialog
from zipfile import ZipFile

gui = Tk()
gui. geometry('500x500')
gui.title("Compression APP")
        
def compress():
    filecom = filedialog.askopenfile()
    with ZipFile(filecom, 'w', zipfile.ZIP_DEFLATED) as ext_Zip:
    ext_Zip.write()
    ext_Zip.close()  

 
btn2 = Button(gui, text='file to zip', command= compress).pack()


gui.mainloop()

为 zip 尝试以下代码并解压缩文件夹中的多个文件,

# Import Module
from tkinter import *
from tkinter.filedialog import askopenfilenames 
from zipfile import ZipFile 

# Create Object
root = Tk() 
# set Geometry
root.geometry('500*500')

def select_file():
  global file_names
  file_names = askopenfilenames(initialdir = "/",title = "Select File")

# UnZip All Files
def unzip_file():
  for file_name in file_names:
    if file_name.endswith('.zip'):
      with ZipFile(file_name, 'r') as zip:
        zip.extractall()

# Zip The Files
def zip_file():
    with ZipFile('my_python_files.zip','w') as zip:
        for file_name in file_names: 
            zip.write(file_name) 


# Add Labels and Buttons
Label(root, text="Zip & Unzip File", font="italic 15 bold").pack(pady=10)

Button(root,text="Select File",command=select_file,font=14).pack(pady=10)

frame = Frame()
frame.pack(pady=20)

unzip_btn = Button(frame,text="UnZip All Files",command=unzip_file,relief="solid",bg="white",font=15)
unzip_btn.pack(side=LEFT,padx=10)

zip_btn = Button(frame,text="Zip All Files",command=zip_file,relief="solid",bg="white",font=15).pack()

# Execute Tkinter
root.mainloop()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM