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文件和目录操作函数小结
Jul 11 Python
Python下Fabric的简单部署方法
Jul 14 Python
python Spyder界面无法打开的解决方法
Apr 27 Python
对python中for、if、while的区别与比较方法
Jun 25 Python
nginx搭建基于python的web环境的实现步骤
Jan 03 Python
python多线程实现同时执行两个while循环的操作
May 02 Python
使用keras和tensorflow保存为可部署的pb格式
May 25 Python
keras实现基于孪生网络的图片相似度计算方式
Jun 11 Python
pandas.DataFrame.drop_duplicates 用法介绍
Jul 06 Python
python Paramiko使用示例
Sep 21 Python
python 用struct模块解决黏包问题
Nov 07 Python
如何用python反转图片,视频
Apr 24 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
用 Composer构建自己的 PHP 框架之使用 ORM
2014/10/30 PHP
PHP判断网络文件是否存在的方法
2015/03/12 PHP
php读取torrent种子文件内容的方法(测试可用)
2016/05/03 PHP
PHP实现表单提交时去除斜杠的方法
2016/12/26 PHP
利用Homestead快速运行一个Laravel项目的方法详解
2017/11/14 PHP
Javascript 检测、添加、移除样式(className)函数代码
2009/09/08 Javascript
jquery的$(document).ready()和onload的加载顺序
2010/05/26 Javascript
Jquery实现三层遍历删除功能代码
2013/04/23 Javascript
javascript检测浏览器的缩放状态实现代码
2014/09/28 Javascript
js实现人才网站职位选择功能的方法
2015/08/14 Javascript
如何防止INPUT按回车自动提交表单FORM
2016/12/06 Javascript
解决JS外部文件中文注释出现乱码问题
2017/07/09 Javascript
JS与jQuery实现ListBox上移,下移,左移,右移操作功能示例
2018/05/31 jQuery
Nodejs Express 通过log4js写日志到Logstash(ELK)
2018/08/30 NodeJs
jQuery实现模拟搜索引擎的智能提示功能简单示例
2019/01/27 jQuery
详解webpack编译速度提升之DllPlugin
2019/02/05 Javascript
在vue中使用setInterval的方法示例
2019/04/16 Javascript
vuex 实现getter值赋值给vue组件里的data示例
2019/11/05 Javascript
js实现表格单列按字母排序
2020/08/12 Javascript
vue下拉刷新组件的开发及slot的使用详解
2020/12/23 Vue.js
原生JavaScript实现幻灯片效果
2021/02/19 Javascript
下载糗事百科的内容_python版
2008/12/07 Python
python中的reduce内建函数使用方法指南
2014/08/31 Python
详谈python3 numpy-loadtxt的编码问题
2018/04/29 Python
浅谈Pandas Series 和 Numpy array中的相同点
2019/06/28 Python
Django用户身份验证完成示例代码
2020/04/03 Python
Python ini文件常用操作方法解析
2020/04/26 Python
keras 自定义loss损失函数,sample在loss上的加权和metric详解
2020/05/23 Python
pytorch掉坑记录:model.eval的作用说明
2020/06/23 Python
使用Python实现微信拍一拍功能的思路代码
2020/07/09 Python
寄语是什么意思
2014/04/10 职场文书
临时租车协议范本
2014/09/23 职场文书
2015入党自传书范文
2015/06/26 职场文书
个人道歉信大全
2019/04/11 职场文书
详解thinkphp的Auth类认证
2021/05/28 PHP
nodejs利用readline提示输入内容实例代码
2021/07/15 NodeJs