shutil_zipfile_tarfile压缩解压

shutil 模块

高级的 文件、文件夹、压缩包 处理模块

shutil.copyfileobj(fsrc, fdst[, length]) #将文件内容拷贝到另一个文件中

shutil.copyfileobj(open('old.xml','r'), open('new.xml', 'w'))

shutil.copyfile(src, dst) #拷贝文件 内容

shutil.copyfile('f1.log', 'f2.log') #目标文件无需存在

shutil.copymode(src, dst) #仅拷贝权限。内容、组、用户均不变

shutil.copymode('f1.log', 'f2.log') #目标文件必须存在

shutil.copystat(src, dst) #仅拷贝状态的信息,包括:mode atime, mtime, flags

shutil.copystat('f1.log', 'f2.log') #目标文件必须存在

shutil.copy(src, dst) #拷贝文件和权限

shutil.copy('f1.log', 'f2.log')

shutil.copy2(src, dst) #拷贝文件和状态信息

shutil.copy2('f1.log', 'f2.log')

shutil.ignore_patterns(patterns)

shutil.copytree(src, dst, symlinks=False, ignore=None) #递归的去拷贝文件夹

shutil.copytree('folder1', 'folder2', ignore=shutil.ignore_patterns('
.py', '*.bak')) #目标目录不能存在,注意对folder2目父级目录要有可写权限,ignore的意思是排除

shutil.rmtree(path[, ignore_errors[, onerror]]) #递归的去删除文件

shutil.rmtree('folder1')

shutil.move(src, dst) #递归的去移动文件,它类似mv命令,其实就是重命名。

shutil.move('folder1', 'folder3')

shutil.make_archive(base_name, format,...) #创建压缩包并返回文件路径,例如:zip、tar 创建压缩包并返回文件路径,例如:zip、tar

shutil.make_archive("data_bak", 'gztar', root_dir='/data') #将 /data 下的文件打包放置当前程序目录

shutil.make_archive("/tmp/data_bak", 'gztar', root_dir='/data') #将 /data下的文件打包放置 /tmp/目录

base_name: 压缩包的文件名,也可以是压缩包的路径。只是文件名时,则保存至当前目录,否则保存至指定路径,

如 data_bak =>保存至当前路径

如:/tmp/data_bak =>保存至/tmp/

format: 压缩包种类,“zip”, “tar”, “bztar”,“gztar”

root_dir: 要压缩的文件夹路径(默认当前目录)

shutil 对压缩包的处理是调用 ZipFile 和 TarFile 两个模块来进行的,详细:

----------------------------------------------------------

zipfile 模块 压缩&解压缩

import zipfile

# 压缩
z = zipfile.ZipFile('laxi.zip', 'w')
z.write('a.log')
z.write('data.data')
z.close() # 解压
z = zipfile.ZipFile('laxi.zip', 'r')
z.extractall(path='.')
z.close()

tarfile 模块 压缩&解压缩

import tarfile

# 压缩
>>> t=tarfile.open('/tmp/egon.tar','w')
>>> t.add('/test1/a.py',arcname='a.bak')
>>> t.add('/test1/b.py',arcname='b.bak')
>>> t.close() # 解压
>>> t=tarfile.open('/tmp/egon.tar','r')
>>> t.extractall('/egon')
>>> t.close()

最新文章

  1. python Django教程 之 安装、基本命令、视图与网站
  2. Oracle执行语句跟踪(1)——使用sql trace实现语句追踪
  3. Path of Equal Weight (DFS)
  4. 检测IIS应用程序池对象 回收
  5. shell中的双括号表达式
  6. NodeJs REPL交互式解析器常用命令
  7. vue+element搭建的后台管理系统
  8. mac idea sbt工程打jar包
  9. 原生 drag drop HTML5
  10. Burp_用户名密码爆破
  11. MongoDB启动报错 32-bit servers don't have journaling enabled by default. Please use --journal if you want durability. 【转】
  12. 【逆向工具】IDA使用2-VS2015版本release查找main函数入口,局部变量
  13. git rebase commit 信息处理
  14. ubuntu下pyspark的安装
  15. 进阶之路(中级篇) - 017 有关于Arduino 驱动舵机及相关问题
  16. 在 Android studio 中 配置Gradle 进行 “动态编译期间,指定 远程服务器地址 ,生成多个安装包”
  17. Java后台通过jxl生成Excel表格
  18. 识别真假搜索引擎(搜索蜘蛛)方法(baidu,google,Msn,sogou,soso等)
  19. HDU 3364
  20. Linux的getrlimit与setrlimit系统调用

热门文章

  1. VUE中登录密码显示与隐藏的最简设计——基于iview
  2. 关于IT培训机构的个人看法
  3. Ubuntu16.04如何安装bazel?
  4. TensorFlow入门知识
  5. Nacos 数据持久化 mysql8.0
  6. 单列集合List
  7. 轻量级MVC框架(自行开发)
  8. 修改js文件,引发的404问题
  9. 网络工程师和Linux运维工程师有什么区别?学哪个比较好?
  10. throttle工具函数