python2.7压缩带目录文件


一 安装tarfile和scandir依赖包
#!/bin/python
# -*- coding: utf-8 -*-
import os
import tarfile
import time
import scandir

def make_tar_gz(output_filename, source_dir):
try:
with tarfile.open(output_filename, "w:gz") as tar:
# tar.add(source_dir, arcname=os.path.basename(source_dir))
for path_tmp in source_dir:
tar.add(os.path.dirname(path_tmp.path), arcname=os.path.basename(path_tmp.path))
# ba = os.path.basename(path_tmp.path)
# tar.add(ba)
# tar.addfile(path_tmp.path)
tar.close()
return
except Exception, ex:
print str(ex)

ts = time.strftime('%Y%m%d%H%M%S')
file_name = '%s.tar.gz' % ts
# path_list = ['11/234234', '23423423424.log']
path_list = [entry for entry in scandir.scandir('.')]
make_tar_gz(file_name, path_list)

二 备注:
其中arcname表示是否需要加入源文件绝对路径到打包目录内