Python 打包文件夹并保留文件属性 - 使用 tarfile 模块
以下是一个 Python 脚本,用于打包指定文件夹中的所有文件,并保留文件所有属性:
import os
import tarfile
def make_tarfile(output_filename, source_dir):
with tarfile.open(output_filename, 'w:gz') as tar:
for root, dirs, files in os.walk(source_dir):
for file in files:
path = os.path.join(root, file)
tar.add(path, arcname=os.path.relpath(path, source_dir))
if __name__ == '__main__':
source_dir = '/path/to/folder'
output_filename = 'archive.tar.gz'
make_tarfile(output_filename, source_dir)
在这个脚本中,我们使用了 Python 的 os 和 tarfile 模块。os.walk() 函数可以递归地遍历指定目录下的所有文件和子目录。我们使用 tarfile 模块来创建一个 .tar.gz 格式的压缩文件,并将每个文件添加到压缩文件中。
在 make_tarfile() 函数中,我们使用了一个 with 语句来创建一个 tarfile 对象,并指定压缩文件的名称和压缩模式。接着,我们使用 os.walk() 函数来遍历指定目录下的所有文件和子目录。对于每个文件,我们使用 tar.add() 方法将其添加到压缩文件中。arcname 参数用于指定添加到压缩文件中的文件名,我们使用 os.path.relpath() 函数来获取相对路径,以保留文件的所有属性。
在脚本的主函数中,我们指定要打包的文件夹路径和输出文件的名称,并调用 make_tarfile() 函数来创建压缩文件。
原文地址: https://www.cveoy.top/t/topic/lfhS 著作权归作者所有。请勿转载和采集!