0

我正在尝试使脚本能够打开 tkinter 窗口,选择一个目录。在此文件夹中选择几个 *.zip 文件并将它们解压缩。

我的代码没有给我错误,但也没有解压缩文件。我正在使用 python2.7 的 extractall() 方法

import zipfile,os,tkFileDialog,Tkinter,glob

root = Tkinter.Tk()
directory = tkFileDialog.askdirectory(parent=root,initialdir="/Users/me/zips",title='Please select a directory')
if len(directory) > 0 :
    print ("Dossier OK")


for ArchivesZip in glob.glob(os.path.join(directory,'*.zip')):
    print ArchivesZip
    zip_ref = zipfile.ZipFile(ArchivesZip, 'r')
    zip_ref.extractall()
    zip_ref.close()

非常感谢您的建议。

4

1 回答 1

1

您的代码运行良好,但您正在将文件解压缩到当前工作目录。该目录是什么取决于您如何启动程序。

您很可能希望显式指定一个目录以将 zip 文件解压缩到其中。用户选择的目录是一个很好的起点:

for ArchivesZip in glob.glob(os.path.join(directory,'*.zip')):
    print ArchivesZip
    zip_ref = zipfile.ZipFile(ArchivesZip, 'r')
    zip_ref.extractall(directory)
    zip_ref.close()
于 2013-08-31T09:09:33.000 回答