I'm trying to zip the contents of a directory, without zipping the directory itself, however I can't find an obvious way to do this, and I'm extremely new to python so it's basically german to me.
here's the code I'm using which successfully includes the parent as well as the contents:
#!/usr/bin/env python
import os
import zipfile
def zipdir(path, ziph):
# ziph is zipfile handle
for root, dirs, files in os.walk(path):
for file in files:
ziph.write(os.path.join(root, file))
if __name__ == '__main__':
zipf = zipfile.ZipFile('Testing.zip', 'w', zipfile.ZIP_DEFLATED)
zipdir('android', zipf)
zipf.close()
write has second argument - name in archive, ie.
ziph.write(os.path.join(root, file), file)
EDIT:
#!/usr/bin/env python
import os
import zipfile
def zipdir(path, ziph):
length = len(path)
# ziph is zipfile handle
for root, dirs, files in os.walk(path):
folder = root[length:] # path without "parent"
for file in files:
ziph.write(os.path.join(root, file), os.path.join(folder, file))
if __name__ == '__main__':
zipf = zipfile.ZipFile('Testing.zip', 'w', zipfile.ZIP_DEFLATED)
zipdir('android', zipf)
zipf.close()