extractall()方法不适用于Python 2.7

时间:2013-08-31 08:50:03

标签: python python-2.7

我正在尝试使脚本能够打开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()

非常感谢您的建议。

1 个答案:

答案 0 :(得分:0)

您的代码运行正常,但您正在将文件解压缩到当前工作目录。该目录的内容取决于您启动程序的方式。

您很可能希望显式指定要将zipfile解压缩到的目录。用户选择的目录是一个很好的起点:

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()