extractall()方法不适用于Python 2.7
我试图让一个脚本能够打开tkinter窗口,选择一个目录。在此文件夹中选择几个*.zip文件并将其解压缩 我的代码没有给我错误,但也没有解压缩文件。我正在使用python2.7中的extractall()方法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
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()方法可以隐式解压到与所选文件相同的目录中。。。现在,它正在发挥作用。谢谢:)