import zipfile, os, os.path

class ZipFileExt(zipfile.ZipFile):
    def unzip_into_dir(self, dir):
        if not os.path.exists(dir):
            os.mkdir(dir, 0777)
        for name in self.namelist():
            if name.endswith('/'):
                os.mkdir(os.path.join(dir,name))
            else:
                outfile = open(os.path.join(dir,name), 'wb')
                outfile.write(self.read(name))
                outfile.close()

