标签:压缩 -- 保存 相加 根目录 结构 获取 turn file模块
压缩后的目录结构: --2018_9_10.tar.gz --filename --file1 --test1 --test2 --test3 def make_targz(save_dir, source_dir): ‘‘‘ :param save_dir: 保存压缩包的目录 :param source_dir: 需要压缩文件夹的目录 ‘‘‘ fname = datetime.datetime.now().strftime(‘%Y_%m_%d‘) fname = save_dir + "/" + fname with tarfile.open(fname + ".tar.gz", "w:gz") as tar: tar.add(source_dir, arcname=os.path.basename(source_dir))
os.walk的作用:
def file_name(file_dir): for root, dirs, files in os.walk(file_dir): print(root) #当前目录路径 print(dirs) #当前路径下所有子目录 print(files) #当前路径下所有非目录子文件
对日期操作:
获取当前日期: date_name = datetime.datetime.now().strftime(‘%Y_%m_%d‘) 日期的相加减: date1 = ‘2018_9_10‘ date2 = ‘2018_10_10‘ d1 = datetime.datetime.strptime(date1, ‘%Y_%m_%d‘) d2 = datetime.datetime.strptime(date2, ‘%Y_%m_%d‘) delta = d2-d1 print delta.days
结果:30
对文件夹的压缩tar.gz格式:
以下所用到的一些知识点
1.os.walk的利用 2.datetime模块的利用 3.tarfile模块下的 add(),重点在于arcname参数的利用, arcname参数代表需要压缩的文件名
需要压缩的文件目录结构 :
--filename --file1 --test1 --test2 --test3
1.压缩文件夹,只能压缩文件夹下的文件
压缩后的目录结构:
--2018_9_10.tar.gz
--test2
--test3
def tar_file(save_dir, uppack_dir): ‘‘‘ :param save_dir: 保存压缩文件的路径 :param uppack_dir: 需要压缩文件的路径 :param fname:获取当前时间命名压缩文件 :return: ‘‘‘ fname = datetime.datetime.now().strftime(‘%Y_%m_%d‘) fname = save_dir + "/" + fname tar = tarfile.open(fname + ".tar.gz", "w:gz") for root, dir, files in os.walk(uppack_dir): for file in files: fullpath = os.path.join(root, file)
tar.add(fullpath, arcname=file)
2.压缩文件夹,一次性打包整个根目录,包括文件夹下的目录
3.压缩文件夹,压缩文件下的所有内容
def make_targz(save_dir, source_dir):
‘‘‘ :param save_dir: 保存压缩包的目录 :param source_dir: 需要压缩文件夹的目录 ‘‘‘ fname = datetime.datetime.now().strftime(‘%Y_%m_%d‘) fname = save_dir + "/" + fname with tarfile.open(fname + ".tar.gz", "w:gz") as tar: tar.add(source_dir, arcname="")
标签:压缩 -- 保存 相加 根目录 结构 获取 turn file模块
原文地址:https://www.cnblogs.com/tang-s/p/9620248.html