Hello everyone,

I'm a newbie to Python, learning it and tried to write the script that
would read file, zip it, and put in the target directory. I used
ZipFile module (code below).

It works nice, except the zipfile created contains the directory path
of the source file -- which I do NOT want to recreate. E.g. when
I compress 'c:\\temp\\zz.txt', the resulting zipfile contains not just
'zz.txt' file, but also the whole directory, i.e. first directory
is 'c:', inside of it the directory 'temp' is located, and only then
the 'zz.txt' file is stored.

Changing current directory via os.chdir and then using the
filename itself (zz.txt) doesn't work, i.e. the source directory
structure is still re-created within the zipfile.

Code follows. TIA for reply,


def zf(sfpath, targetdir):
        if (sys.platform[:3] == 'win'):
                tgfpath=sfpath[2:]
        else:
                tgfpath=sfpath
        zfdir=os.path.dirname(os.path.abspath(targetdir) + tgfpath)
        zfname=zfdir + '\\' + os.path.basename(tgfpath) + '.zip'
        if(not os.path.isdir(zfdir)):
                os.makedirs(zfdir)
        archive=ZipFile(zfname, 'w', ZIP_DEFLATED)
        print 'zfname ' + zfname
        archive.write(sfpath)
        archive.close()

>>> zf('c:\\temp\\zz.txt','c:\\tmp\\test1\\test2')
zfname c:\tmp\test1\test2\temp\zz.txt.zip
>>> 



--
"Cultural ecstasy may have billions of participants, but it hardly
has a single friend." -- Charles Freund
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to