lodkkx lodkkx - 4 months ago 46
Python Question

Extracting zip file contents to specific directory in Python 2.7

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

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:\\")