我正在创建压缩文件/文件夹的Python软件......我如何创建一段代码,要求用户输入文件夹位置然后压缩它。我目前有单个文件的代码,但不是一个文件夹。请详细说明如何执行此操作。
答案 0 :(得分:14)
将文件夹压缩到tar文件的代码是:
import tarfile
tar = tarfile.open("TarName.tar.gz", "w:gz")
tar.add("folder/location", arcname="TarName")
tar.close()
它对我有用。希望对你也有用。
答案 1 :(得分:8)
GZip不会压缩文件夹/目录,只会压缩单个文件。请改用zipfile
模块。
答案 2 :(得分:6)
我不做UI,因此您可以自己从用户那里获取文件夹名称。这是制作gz压缩tarfile的一种方法。它不递归子文件夹,你需要像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)
答案 3 :(得分:0)
正如larsmans所说,gzip压缩不用于目录,只用于单个文件。使用linux的常用方法是先将目录放在tarball中然后压缩它。