python shutil模块常用操作

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

1.将文件内容拷贝至另一个文件中

shutil.copyfileobj(src, dist, length=16*1024),默认长度为16 * 1024,默认返回None

shutil.copyfileobj(open('test3.py', 'r'), open('test3/test2.py','w'))

2.拷贝文件

shutil.copyfile(src, dist),dist目标文件无需存在, 返回复制后的文件名称,此处为"test4.py",不拷贝权限、状态信息,只拷贝文本

shutil.copyfile("test3.py", "test4.py")

3.仅拷贝权限,内容、组、用户不变

目标文件必须存在,不拷贝内容、状态

shutil.copymode("test3.py","test4.py")

4.仅拷贝状态信息及读写权限

状态信息包括:mode bits, atime, mtime, flags;目标文件必须存在

shutil.copystat("test3.py","test4.py")

5.拷贝文件和权限

包括文件内容和文件的读写权限

shutil.copy("test3.py", "test5.py")

6.拷贝文件和状态信息

包含文件内容及状态信息:mode bits, atime, mtime, flags、读写权限

shutil.copy2("test3.py", "test6.py")

7.递归拷贝文件(从一个文件夹中拷贝到另一个文件夹)

递归拷贝文件需要目标文件夹不存在,ignore为忽略的文件或文件夹

shutil.copytree("test3","test4",ignore=shutil.ignore_patterns("*.py"))

8.递归删除文件夹

会删除全部文件及文件夹

shutil.rmtree("test4")

9.递归移动文件(相当于重命名)

shutil.move("test3","test4")

10.创建压缩包并返回文件的路径

shutil.make_archive(base_name, format, root_dir), base_name:压缩包的名称,format一般为"zip", "tar", "bztar" or "gztar",

root_dir:需要压缩的路径

shutil.make_archive("test", "zip", "test4")

11.解压缩压缩包

shutil.unpack_archive(base_name, extract_dir, format);base_name:压缩包路径;extract_dir:解压缩的路径;

format一般为"zip", "tar", "bztar" or "gztar"

shutil.unpack_archive("test.zip", "test5", "zip")

12.shutil压缩及解压缩原理

调用 ZipFile 和 TarFile 两个模块来进行的

最新文章

  1. 06.GitHub实战系列~6.过滤器过滤掉的文件如何上传
  2. Mongodb的安装使用
  3. java 特性
  4. 命令行安装KVM
  5. 24C02 Twr
  6. C#:绘制Winform窗体
  7. log4j.xml配置文件
  8. MVC3.0在各个版本IIS中的部署
  9. Centos7安装Oracle JDK
  10. JAVA异常设计原则
  11. 每R一点:层次聚类分析实例实战-dist、hclust、heatmap等(转)
  12. 35. leetcode 501. Find Mode in Binary Search Tree
  13. .net SignalR winform 推送广播
  14. SDL 开发实战(五): SDL 纹理渲染
  15. java基础(十四)-----详解匿名内部类——Java高级开发必须懂的
  16. 阿里天池的新任务(简单)(KMP统计子串出现的次数)
  17. python之装饰器(decorator)
  18. python-数据分析与展示(Numpy、matplotlib、pandas)---3
  19. IDEA如何自动生成testNG的测试报告?
  20. CentOS下部署Jupyter

热门文章

  1. 论文解读(SimGRACE)《SimGRACE: A Simple Framework for Graph Contrastive Learning without Data Augmentation》
  2. 从rocketmq入手,解析各种零拷贝的jvm层原理
  3. 项目实战:Qt+OpenCV大家来找茬(Qt抓图,穿透应用,识别左右图区别,框选区别,微调位置)
  4. SQL连接查询优化[姊妹篇.第五弹]
  5. http协议与html
  6. Fail2ban 安装Fail2ban到Ubuntu
  7. el-form 中的数组表单验证(数组可动态添加删除)
  8. 大白话讲Java的锁
  9. 解决WIN7无法安装高版本Node.js问题
  10. JavaDoc——JavaSE基础