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下进行UDP网络编程的教程
Apr 29 Python
简单讲解Python中的数字类型及基本的数学计算
Mar 11 Python
python多进程实现进程间通信实例
Nov 24 Python
Linux系统(CentOS)下python2.7.10安装
Sep 26 Python
python 通过麦克风录音 生成wav文件的方法
Jan 09 Python
Python两个字典键同值相加的几种方法
Mar 05 Python
Python3.5模块的定义、导入、优化操作图文详解
Apr 27 Python
Python 实例方法、类方法、静态方法的区别与作用
Aug 14 Python
python实时监控logstash日志代码
Apr 27 Python
Python键鼠操作自动化库PyAutoGUI简介(小结)
May 17 Python
如何用Python编写一个电子考勤系统
Feb 08 Python
OpenCV-Python实现轮廓拟合
Jun 08 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面向对象全攻略 (一) 面向对象基础知识
2009/09/30 PHP
thinkphp微信开之安全模式消息加密解密不成功的解决办法
2015/12/02 PHP
PHP简单获取及判断提交来源的方法
2016/04/22 PHP
php将html转为图片的实现方法
2017/05/19 PHP
PHP数据分析引擎计算余弦相似度算法示例
2017/08/08 PHP
Dom操作之兼容技巧分享
2011/09/20 Javascript
关于图片按比例自适应缩放的js代码
2011/10/30 Javascript
nodejs教程 安装express及配置app.js文件的详细步骤
2013/05/11 NodeJs
JS获取select-option-text_value的方法
2013/12/26 Javascript
原生JS实现响应式瀑布流布局
2015/04/02 Javascript
jQuery中Find选择器用法示例
2016/09/21 Javascript
微信小程序 Record API详解及实例代码
2016/09/30 Javascript
深入浅析Node.js单线程模型
2017/07/10 Javascript
EasyUI创建人员树的实例代码
2017/09/15 Javascript
JS实现的ajax和同源策略(实例讲解)
2017/12/01 Javascript
Vue中this.$router.push参数获取方法
2018/02/27 Javascript
微信小程序实现多个按钮的颜色状态转换
2019/02/15 Javascript
小程序hover-class点击态效果实现
2019/02/26 Javascript
js中Function引用类型常见有用的方法和属性详解
2019/12/11 Javascript
vue组件中传值EventBus的使用及注意事项说明
2020/11/16 Javascript
[03:42]2016国际邀请赛中国区预选赛首日现场玩家采访
2016/06/26 DOTA
[01:32]寻找你心中的那团火 DOTA2 TI9火焰传递活动今日开启
2019/05/16 DOTA
详解python发送各类邮件的主要方法
2016/12/22 Python
详解用TensorFlow实现逻辑回归算法
2018/05/02 Python
Django对接支付宝实现支付宝充值金币功能示例
2019/12/17 Python
Jupyter Notebook远程登录及密码设置操作
2020/04/10 Python
scrapy爬虫:scrapy.FormRequest中formdata参数详解
2020/04/30 Python
如何基于Python Matplotlib实现网格动画
2020/07/20 Python
企业金融服务方案
2014/06/03 职场文书
四则混合运算教学反思
2016/02/23 职场文书
《女娲补天》读后感5篇
2019/12/31 职场文书
2021-4-3课程——SQL Server查询【2】
2021/04/05 SQL Server
为什么node.js不适合大型项目
2021/04/28 Javascript
JavaWeb实现显示mysql数据库数据
2022/03/19 Java/Android
Pandas实现DataFrame的简单运算、统计与排序
2022/03/31 Python
Pillow图像处理库安装及使用
2022/04/12 Python