如何使用Python GZip模块压缩文件夹?

13 投票
4 回答
29095 浏览
提问于 2025-04-16 05:05

我正在制作一个用Python编写的软件,用来压缩文件和文件夹……我想知道怎么写一段代码,让用户输入文件夹的位置,然后对这个文件夹进行压缩。目前我已经有了压缩单个文件的代码,但还没有处理一个装满文件的文件夹的代码。请详细解释一下该怎么做。

4 个回答

8

GZip 只对单个文件进行压缩,而不压缩文件夹或目录。如果你想压缩文件夹,可以使用 zipfile 这个模块。

11

我不做用户界面,所以获取用户输入的文件夹名称就靠你自己了。这里有一种方法可以创建一个gz压缩的tar文件。不过要注意,这个方法不会自动处理子文件夹,如果你想要处理子文件夹,可以使用像os.walk()这样的工具。

# 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)
29

把一个文件夹压缩成tar文件的代码是:

import tarfile

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

这个对我有效。希望对你也有用。

撰写回答