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 时间处理datetime实例
Sep 06 Python
详解python上传文件和字符到PHP服务器
Nov 24 Python
python的dataframe转换为多维矩阵的方法
Apr 11 Python
python监控文件并且发送告警邮件
Jun 21 Python
python抓取京东小米8手机配置信息
Nov 13 Python
对python中的argv和argc使用详解
Dec 15 Python
Python 中的 global 标识对变量作用域的影响
Aug 12 Python
Python之字典添加元素的几种方法
Sep 30 Python
Python 2.6.6升级到Python2.7.15的详细步骤
Dec 14 Python
Python基础之pandas数据合并
Apr 27 Python
详解Go语言运用广度优先搜索走迷宫
Jun 23 Python
python多线程方法详解
Jan 18 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中return 和 exit 、break和contiue 区别与用法
2012/04/09 PHP
PHP面向对象的进阶学习(抽像类、接口、final、类常量)
2012/05/07 PHP
关于PHP结束标签的使用细节探讨及联想
2013/03/04 PHP
Laravel5.1 框架控制器基础用法实例分析
2020/01/04 PHP
PHP ElasticSearch做搜索实例讲解
2020/02/05 PHP
让JavaScript 轻松支持函数重载 (Part 1 - 设计)
2009/08/04 Javascript
javascript是怎么继承的介绍
2012/01/05 Javascript
详解jquery uploadify 上传文件
2013/11/09 Javascript
js实现模拟计算器退格键删除文字效果的方法
2015/05/07 Javascript
javascript的函数劫持浅析
2016/09/26 Javascript
ECMAscript 变量作用域总结概括
2017/08/18 Javascript
javascript 面向对象实战思想分享
2017/09/07 Javascript
深入研究React中setState源码
2017/11/17 Javascript
ionic3实战教程之随机布局瀑布流的实现方法
2017/12/28 Javascript
微信小程序实现团购或秒杀批量倒计时
2020/11/01 Javascript
微信小程序实现卡片左右滑动效果的示例代码
2019/05/01 Javascript
Vue中keep-alive组件作用详解
2020/02/04 Javascript
[53:18]Spirit vs Liquid Supermajor小组赛A组 BO3 第三场 6.2
2018/06/03 DOTA
Python内置函数dir详解
2015/04/14 Python
Python SQLite3数据库日期与时间常见函数用法分析
2017/08/14 Python
python多进程实现文件下载传输功能
2018/07/28 Python
python图形工具turtle绘制国际象棋棋盘
2019/05/23 Python
python flask 如何修改默认端口号的方法步骤
2019/07/12 Python
python多任务之协程的使用详解
2019/08/26 Python
python实现局域网内实时通信代码
2019/12/22 Python
浅谈Keras中shuffle和validation_split的顺序
2020/06/19 Python
如何在Win10系统使用Python3连接Hive
2020/10/15 Python
Vector, ArrayList, HashTable, HashMap哪些是线程安全的,哪些不是
2015/10/12 面试题
公司办公室岗位职责
2014/03/19 职场文书
放飞梦想演讲稿200字
2014/08/26 职场文书
文秘班元旦晚会活动策划方案
2014/08/28 职场文书
民政局个人整改措施
2014/09/24 职场文书
党的群众路线查摆剖析材料
2014/10/10 职场文书
法院个人总结
2015/03/03 职场文书
html5中sharedWorker实现多页面通信的示例代码
2021/05/07 Javascript
CentOS7环境下MySQL8常用命令小结
2022/06/10 Servers