def __init__(self, filename, element): if exists(filename): file.__init__ (self, filename, "r+") else: base, seq = dirname(filename).split(sep, 1) seq.split(sep) recursive_mkdir(base+sep, seq.split(sep)) file.__init__ (self, filename, "w+") self._element = element
def __init__(self, file_, package): self.dir = d = mkdtemp(prefix="advene2_zip_") atexit.register(rmtree, d, True) if hasattr(file_, "seek"): g = None z = ZipFile(file_, "r") else: # ZipFile requires seekable file, dump it in tmpfile g = tmpfile() g.write(file_.read()) g.seek(0) z = ZipFile(g, "r") names = z.namelist() for zname in names: seq = zname.split("/") dirname = recursive_mkdir(d, seq[:-1]) if seq[-1]: fname = path.join(dirname, seq[-1]) h = open(fname, "w") h.write(z.read(zname)) h.close() z.close() if g is not None: g.close() self.content = path.join(d, "content.xml") self.package = package