Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
extractall()方法不适用于Python 2.7_Python_Python 2.7 - Fatal编程技术网

extractall()方法不适用于Python 2.7

extractall()方法不适用于Python 2.7,python,python-2.7,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",ti

我试图让一个脚本能够打开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()

非常感谢您的建议。

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

您很可能希望显式指定要将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()

是什么让你认为
zipfile.zipfile()
可以接受目录?您试图实现什么,将zipfile解压缩到所选目录?是的,我正在尝试解压缩同一目录中的一组zipfile。我原以为zipfile.zipfile()方法会接受目录中包含的文件列表。我也尝试了这个方法:
用于glob.glob(os.path.join(directory,*.zip')中的ArchivesZip:print ArchivesZip zip zip_ref=zipfile.zipfile(ArchivesZip,'r')zip_ref.extractall()zip_ref.close()
zipfile.zipfile()
仅接受zipfile文件名。你的另一次尝试在我看来是正确的;更新您的问题添加该尝试,并告诉我们为什么对您无效。我刚刚更新了问题。哦!我真蠢。我认为extractall()方法可以隐式解压到与所选文件相同的目录中。。。现在,它正在发挥作用。谢谢:)