import os,shutil,zipfile,pprint # prepare tree to zip if os.path.isdir('subdir'): shutil.rmtree('subdir') os.mkdir('subdir') open('subdir/hello.txt', 'w').write('hello') os.mkdir('subdir/foo') open('subdir/foo/bar.txt', 'w').write('spam') # zip it if os.path.isfile('a.zip'): os.remove('a.zip') shutil.make_archive('a', 'zip', 'subdir') # check content z = zipfile.ZipFile('a.zip','r') pprint.pprint(z.namelist())