参考博客:http://www.cnblogs.com/wupeiqi/articles/4963027.html

shutil模块是高级的文件、文件夹、压缩处理的模块。比如文件的copy、压缩等。

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

1.shutil.copyfileobj(fsrc,fdst[,length]):将文件内容复制到另外一个文件中

实例:复制文件内容到新文件中

a.打开文件的方式去复制

import shutil

f1=open("random.py")

f2=open("random new.py","w")

shutil.copyfileobj(f1,f2)

b.不打开文件的方式去复制

>>> import shutil

>>> shutil.copy(r"c:\提高.txt","test") #复制文件和权限

'test'

>>> shutil.copy2(r"c:\提高.txt","test")  #复制文件和状态

>>>shutil.copyfile(r"C:\提高.txt","test") #复制文件

区别:copy和copyfile都是复制文件,但copy复制了文件的属主属组,而copyfile却没有。

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

2.shutil.copytree(SRC,DST,symlinks=False,ignore=None) 递归的复制文件,也可以复制目录,相当于linux下的cp -r

3.shutil.rmtree(path[,ignore_errors[,oneerror]]) 递归删除文件

4.shutil.move(src,dst) 递归的移动文件

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

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

* 如:www                        =>保存至当前路径

* 如:/Users/wupeiqi/www =>保存至/Users/wupeiqi/

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

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

* owner:用户,默认当前用户

* group:组,默认当前组

* logger:用于记录日志,通常是logging.Logger对象

实例1:

#将 /Users/wupeiqi/Downloads/test 下的文件打包放置当前程序目录                                           、

import shutil

ret = shutil.make_archive("wwwwwwwwww", 'gztar', root_dir='/Users/wupeiqi/Downloads/test')

#将 /Users/wupeiqi/Downloads/test 下的文件打包放置 /Users/wupeiqi/目录

import shutil

ret = shutil.make_archive("/Users/wupeiqi/wwwwwwwwww", 'gztar', root_dir='/Users/wupeiqi/Downloads/test')

实例2:

把D盘下的简历,打包成c盘下test.zip压缩包

>>> import shutil

>>> shutil.make_archive(r"c:\test",format="zip",root_dir=r"D:\简历")

'c:\\test.zip'

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

 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()
z.close()
 import tarfile

 # 压缩
tar = tarfile.open('your.tar','w')
tar.add('/Users/wupeiqi/PycharmProjects/bbs2.zip', arcname='bbs2.zip')
tar.add('/Users/wupeiqi/PycharmProjects/cmdb.zip', arcname='cmdb.zip')
tar.close() # 解压
tar = tarfile.open('your.tar','r')
tar.extractall() # 可设置解压地址
tar.close()

最新文章

  1. Scrapy创建zentao爬虫
  2. 解决asp.net mvc的跨域请求问题
  3. 通过a标签在页面上显示视频网站中的视频
  4. Delphi 版 MIB_IF_ROW2
  5. iOS 内存问题
  6. grunt-contrib-uglify压缩插件的常用配置属性
  7. 双系统Ubuntu无法访问windows磁盘分区解决方法
  8. 你必须懂的 T4 模板:深入浅出
  9. C++重要知识点小结---3
  10. Python在Windows上的安装
  11. 让wordpress分类和标签的描述支持HTML代码
  12. 微软职位内部推荐-ATG Engineer II
  13. 解决图片元素下多余空白的BUG
  14. webpack loader加载器
  15. [Luogu2617]Dynamic Ranking
  16. Day9 进程同步锁 进程队列 进程池 生产消费模型 进程池 paramike模块
  17. kettle实现同构单表增量同步
  18. 个人博客地址: furur.xyz
  19. WebStorage (1) 实例
  20. VMware激活密钥

热门文章

  1. Java NIO 之 Socket Channel
  2. Elasticsearch 全教程--入门
  3. 蓝桥杯练习系统— 算法训练 Beaver's Calculator
  4. #1280 : Rikka with Sequence II [meet int the middle]
  5. 4.C++中的函数重载,C++调用C代码,new/delete关键字,namespace(命名空间)
  6. Win10编译SqlCipher步骤
  7. 几个重要的shell命令:diff patch tar find grep
  8. Angular20 nginx安装,angular项目部署
  9. php+redis 学习 一 连接
  10. Nginx日志分析及脚本编写