Esempio n. 1
0
 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
Esempio n. 2
0
    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