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和GO语言实现的消息摘要算法示例
Mar 10 Python
Windows下PyMongo下载及安装教程
Apr 27 Python
实例讲解Python中SocketServer模块处理网络请求的用法
Jun 28 Python
python基础教程项目四之新闻聚合
Apr 02 Python
Python模拟自动存取款机的查询、存取款、修改密码等操作
Sep 02 Python
python的schedule定时任务模块二次封装方法
Feb 19 Python
python 梯度法求解函数极值的实例
Jul 10 Python
python装饰器原理与用法深入详解
Dec 19 Python
如何在Python 游戏中模拟引力
Mar 27 Python
简单了解Python变量作用域正确使用方法
Jun 12 Python
基于python实现坦克大战游戏
Oct 27 Python
python图片合成的示例
Nov 09 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递归json类实例
2014/12/02 PHP
CodeIgniter实现从网站抓取图片并自动下载到文件夹里的方法
2015/06/17 PHP
ZendFramework2连接数据库操作实例
2017/04/18 PHP
php基于session锁防止阻塞请求的方法分析
2017/08/07 PHP
Laravel框架实现简单的学生信息管理平台案例
2019/05/07 PHP
php解决crontab定时任务不能写入文件问题的方法分析
2019/09/16 PHP
Js 弹出框口并返回值的两种常用方法
2010/12/30 Javascript
JS获取整个页面文档的实现代码
2011/12/15 Javascript
jquery入门—选择器实现隔行变色实例代码
2013/01/04 Javascript
jquery.form.js用法之清空form的方法
2014/03/07 Javascript
JavaScript实现带箭头标识的多级下拉菜单效果
2015/08/27 Javascript
原生JavaScript实现动态省市县三级联动下拉框菜单实例代码
2016/02/03 Javascript
深入浅析Extjs中store分组功能的使用方法
2016/04/20 Javascript
Vue.js使用v-show和v-if的注意事项
2016/12/13 Javascript
Jil,高效的json序列化和反序列化库
2017/02/15 Javascript
微信小程序中input标签详解及简单实例
2017/05/18 Javascript
AngularJS入门教程二:在路由中传递参数的方法分析
2017/05/27 Javascript
vue 中swiper的使用教程
2018/05/22 Javascript
nodejs读取本地中文json文件出现乱码解决方法
2018/10/10 NodeJs
解决百度Echarts图表坐标轴越界的方法
2018/10/17 Javascript
vue 兄弟组件的信息传递的方法实例详解
2019/08/30 Javascript
Angular 多模块项目构建过程
2020/02/13 Javascript
jQuery插件simplePagination的使用方法示例
2020/04/28 jQuery
Python实现读取字符串按列分配后按行输出示例
2018/04/17 Python
flask框架单元测试原理与用法实例分析
2019/07/23 Python
django实现将后台model对象转换成json对象并传递给前端jquery
2020/03/16 Python
python 获取域名到期时间的方法步骤
2021/02/10 Python
就业推荐自我鉴定
2013/10/06 职场文书
求职信格式范本
2013/11/15 职场文书
法学个人求职信范文
2014/01/27 职场文书
护士试用期自我鉴定
2014/02/08 职场文书
老公给老婆的保证书
2014/04/28 职场文书
校运会宣传稿大全
2015/07/23 职场文书
高一军训感想
2015/08/07 职场文书
小程序教您怎样你零成本推广获取数万用户的方法
2019/07/30 职场文书
《Estab Life》4月6日播出 正式PV、主视觉图公开
2022/03/20 日漫