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实现获取客户机上指定文件并传输到服务器的方法
Mar 16 Python
Python的Django REST框架中的序列化及请求和返回
Apr 11 Python
Python中多线程的创建及基本调用方法
Jul 08 Python
Python实现Mysql数据库连接池实例详解
Apr 11 Python
使用Python实现从各个子文件夹中复制指定文件的方法
Oct 25 Python
对python中数据集划分函数StratifiedShuffleSplit的使用详解
Dec 11 Python
Python 虚拟空间的使用代码详解
Jun 10 Python
python 计算平均平方误差(MSE)的实例
Jun 29 Python
PIL对上传到Django的图片进行处理并保存的实例
Aug 07 Python
在spyder IPython console中,运行代码加入参数的实例
Apr 20 Python
django实现日志按日期分割
May 21 Python
python脚本框架webpy的url映射详解
Nov 20 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
为了这两部电子管收音机,买了6套全新电子管和10粒刻度盘灯泡
2021/03/02 无线电
php环境配置 php5 MySQL5 apache2 phpmyadmin安装与配置图文教程
2007/03/16 PHP
yii框架表单模型使用及以数组形式提交表单数据示例
2014/04/30 PHP
ThinkPHP基本的增删查改操作实例教程
2014/08/22 PHP
php 使用file_get_contents读取大文件的方法
2014/11/13 PHP
php实现三级级联下拉框
2016/04/17 PHP
jquery乱码与contentType属性设置问题解决方案
2013/01/07 Javascript
浏览器复制插件zeroclipboard使用指南
2016/03/26 Javascript
JS实现520 表白简单代码
2018/05/21 Javascript
vue.js实现标签页切换效果
2018/06/07 Javascript
一次Webpack配置文件的分离实战记录
2018/11/30 Javascript
layui导出所有数据的例子
2019/09/10 Javascript
Vue实现开心消消乐游戏算法
2019/10/22 Javascript
微信小程序实现搜索框功能及踩过的坑
2020/06/19 Javascript
python通过ssh-powershell监控windows的方法
2015/06/02 Python
PYTHON压平嵌套列表的简单实现
2016/06/08 Python
Python用Pillow(PIL)进行简单的图像操作方法
2017/07/07 Python
解决python3 urllib 链接中有中文的问题
2018/07/16 Python
python实现对任意大小图片均匀切割的示例
2018/12/05 Python
解决Pycharm 包已经下载,但是运行代码提示找不到模块的问题
2019/08/31 Python
Python列表解析操作实例总结
2020/02/26 Python
Python面向对象程序设计之继承、多态原理与用法详解
2020/03/23 Python
python 3.8.3 安装配置图文教程
2020/05/21 Python
解决Alexnet训练模型在每个epoch中准确率和loss都会一升一降问题
2020/06/17 Python
Python之多进程与多线程的使用
2021/02/23 Python
HTML5拖放效果的实现代码
2016/11/17 HTML / CSS
基于zepto的插件之移动端无缝向上滚动并上下触摸滑动实例代码
2016/12/20 HTML / CSS
美国汽车交易网站:Edmunds
2016/08/17 全球购物
TripAdvisor西班牙官方网站:全球领先的旅游网站
2018/01/10 全球购物
纪念九一八事变演讲稿1000字
2014/09/14 职场文书
银行职员工作失误检讨书
2014/10/14 职场文书
房产公证书格式
2015/01/26 职场文书
工作岗位职责范本
2015/02/15 职场文书
研究生论文答辩开场白
2015/05/27 职场文书
React四级菜单的实现
2022/04/08 Javascript
vue实现列表垂直无缝滚动
2022/04/08 Vue.js