Python打包文件夹的方法小结(zip,tar,tar.gz等)


Posted in Python onSeptember 18, 2016

本文实例讲述了Python打包文件夹的方法。分享给大家供大家参考,具体如下:

一、zip

import os, zipfile
#打包目录为zip文件(未压缩)
def make_zip(source_dir, output_filename):
  zipf = zipfile.ZipFile(output_filename, 'w')
  pre_len = len(os.path.dirname(source_dir))
  for parent, dirnames, filenames in os.walk(source_dir):
    for filename in filenames:
      pathfile = os.path.join(parent, filename)
      arcname = pathfile[pre_len:].strip(os.path.sep)   #相对路径
      zipf.write(pathfile, arcname)
  zipf.close()

二、tar/tar.gz

import os, tarfile
#一次性打包整个根目录。空子目录会被打包。
#如果只打包不压缩,将"w:gz"参数改为"w:"或"w"即可。
def make_targz(output_filename, source_dir):
  with tarfile.open(output_filename, "w:gz") as tar:
    tar.add(source_dir, arcname=os.path.basename(source_dir))
#逐个添加文件打包,未打包空子目录。可过滤文件。
#如果只打包不压缩,将"w:gz"参数改为"w:"或"w"即可。
def make_targz_one_by_one(output_filename, source_dir):
  tar = tarfile.open(output_filename,"w:gz")
  for root,dir,files in os.walk(source_dir):
    for file in files:
      pathfile = os.path.join(root, file)
      tar.add(pathfile)
  tar.close()

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python实现mysql的读写分离及负载均衡
Feb 04 Python
python 去除二维数组/二维列表中的重复行方法
Jan 23 Python
CentOS7安装Python3的教程详解
Apr 10 Python
java判断三位数的实例讲解
Jun 10 Python
python内置函数sorted()用法深入分析
Oct 08 Python
使用IDLE的Python shell窗口实例详解
Nov 19 Python
python实现连续变量最优分箱详解--CART算法
Nov 22 Python
Python StringIO如何在内存中读写str
Jan 07 Python
PyQt5事件处理之定时在控件上显示信息的代码
Mar 25 Python
浅谈Python 中的复数问题
May 19 Python
浅谈怎么给Python添加类型标注
Jun 08 Python
python 中的jieba分词库
Nov 23 Python
Python简单格式化时间的方法【strftime函数】
Sep 18 #Python
Python简单获取自身外网IP的方法
Sep 18 #Python
Python简单检测文本类型的2种方法【基于文件头及cchardet库】
Sep 18 #Python
Python3实现并发检验代理池地址的方法
Sep 18 #Python
Python常见格式化字符串方法小结【百分号与format方法】
Sep 18 #Python
Python3的urllib.parse常用函数小结(urlencode,quote,quote_plus,unquote,unquote_plus等)
Sep 18 #Python
Python基于pillow判断图片完整性的方法
Sep 18 #Python
You might like
PHP 引用是个坏习惯
2010/03/12 PHP
file_get_contents获取不到网页内容的解决方法
2013/03/07 PHP
跟我学Laravel之请求(Request)的生命周期
2014/10/15 PHP
php 解决substr()截取中文字符乱码问题
2016/07/18 PHP
JavaScript 拖拉缩放效果
2008/12/10 Javascript
javascript window对象属性整理
2009/10/24 Javascript
关于document.cookie的使用javascript
2010/10/29 Javascript
javascript 基础篇2 数据类型,语句,函数
2012/03/14 Javascript
Javascript实现重力弹跳拖拽运动效果示例
2013/06/28 Javascript
JavaScript调用后台的三种方法实例
2013/10/17 Javascript
跟我学习javascript的浮点数精度
2015/11/16 Javascript
javascript新闻跑马灯实例代码
2020/07/29 Javascript
利用jquery实现验证输入的是否是数字、小数,包含保留几位小数
2016/12/07 Javascript
JS中利用swiper实现3d翻转幻灯片实例代码
2017/08/25 Javascript
解决使用Vue.js显示数据的时,页面闪现原始代码的问题
2018/02/11 Javascript
JS 使用 window对象的print方法实现分页打印功能
2018/05/16 Javascript
基于vue和react的spa进行按需加载的实现方法
2018/09/29 Javascript
python将多个文本文件合并为一个文本的代码(便于搜索)
2011/03/13 Python
使用python编写android截屏脚本双击运行即可
2014/07/21 Python
python处理csv数据的方法
2015/03/11 Python
Python中用于检查英文字母大写的isupper()方法
2015/05/19 Python
Python中函数的参数定义和可变参数用法实例分析
2015/06/04 Python
Django 添加静态文件的两种实现方法(必看篇)
2017/07/14 Python
TensorFlow实现简单卷积神经网络
2018/05/24 Python
django认证系统实现自定义权限管理的方法
2019/08/28 Python
使用CSS3的rem属性制作响应式页面布局的要点解析
2016/05/24 HTML / CSS
澳大利亚窗帘商店:Curtain Wonderland
2019/12/01 全球购物
英语师范专业毕业生自荐信
2013/09/21 职场文书
普通院校学生的自荐信
2013/11/27 职场文书
秋天的雨教学反思
2014/04/27 职场文书
羽毛球社团活动总结
2014/06/27 职场文书
努力工作保证书
2015/02/28 职场文书
团委工作总结2015
2015/04/02 职场文书
Promise面试题详解之控制并发
2021/05/14 面试题
mysql分组后合并显示一个字段的多条数据方式
2022/01/22 MySQL
Z-Order加速Hudi大规模数据集方案分析
2022/03/31 Servers