Extracting zip file contents to specific directory in Python 2.7

lodkkx picture lodkkx · Feb 24, 2012 · Viewed 101.5k times · Source

This is the code I am currently using to extract a zip file that lives in the same current working directory as the script. How can I specify a different directory to extract to?

The code I tried is not extracting it where I want.

import zipfile

fh = open('test.zip', 'rb')
z = zipfile.ZipFile(fh)
for name in z.namelist():
    outfile = open(name, 'wb')
    outfile.write('C:\\'+z.read(name))
    outfile.close()
fh.close()

Answer

secretmike picture secretmike · Feb 24, 2012

I think you've just got a mixup here. Should probably be something like the following:

import zipfile

fh = open('test.zip', 'rb')
z = zipfile.ZipFile(fh)
for name in z.namelist():
    outpath = "C:\\"
    z.extract(name, outpath)
fh.close()

and if you just want to extract all the files:

import zipfile

with zipfile.ZipFile('test.zip', "r") as z:
    z.extractall("C:\\")

Use pip install zipfile36 for recent versions of Python

import zipfile36