Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I compress a folder with the Python GZip module?

I'm creating Python software that compresses files/folders... How would I create a section of the code that asks for the user input of the folder location and then compresses it. I currently have the code for a single file but not a folder full of files. Please explain in detail how to do this.

like image 570
Noah R Avatar asked Oct 06 '10 16:10

Noah R


2 Answers

The code to compress a folder in to tar file is:

import tarfile

tar = tarfile.open("TarName.tar.gz", "w:gz")
tar.add("folder/location", arcname="TarName")
tar.close()

It works for me. Hope that works for you too.

like image 73
ecL3siast Avatar answered Oct 07 '22 05:10

ecL3siast


I don't do UI, so you're on your own for getting the folder name from the user. Here's one way to make a gz-compressed tarfile. It does not recurse over subfolders, you'll need something like os.walk() for that.

# assume the path to the folder to compress is in 'folder_path'

import tarfile
import os

with tarfile.open( folder_path + ".tgz", "w:gz" ) as tar:
    for name in os.listdir( folder_path ):
        tar.add(name)
like image 29
Russell Borogove Avatar answered Oct 07 '22 06:10

Russell Borogove