shutil模块是对os模块中文件操作的补充,提供文件和目录的移动、复制、打包、压缩、解压等功能

shutil常用函数

  shutil.copyfile(src, dst)   复制文件, 如果dst已存在则覆盖

shutil.move(src, dst)  移动文件或重命名

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

shutil.copystat(src, dst)   复制权限、最后访问时间、最后修改时间

  shutil.copy(src, dst)  复制一个文件到一个文件或一个目录

shutil.copy2(src, dst)  复制文件和状态信息,类似于shell中的cp –p命令

shutil.copytree(olddir, newdir, symlinks=False, ignore=None) 递归复制文件夹

shutil.rmtree(src) 递归删除目录以及目录内的所有内容

shutil.make_archive(base_name, format,...)   创建压缩包并返回文件路径

常用函数大概就是这么些。。下面我们开始通过操作实例讲解一下这些函数的使用方法和注意事项。也方便后面用到这个shutil模块时可以做到信手拈来。

shutil使用实例

1、将data1文件夹下的123.txt文件复制到data2文件夹下。保持文件名123.txt不变。

说明:如果指定目录D:\dir_temp\data2下已经存在123.txt文件,会进行覆盖操作。

2、将data1文件夹下的123.txt文件复制到data2文件夹下。同时文件名修改为456.txt

3、将data1文件夹下的123.txt文件移动到data2文件夹下

4、将data1文件夹下的子文件夹及文件复制到data2目录下。复制前data1和data2的文件夹及内容如下:

执行如下操作

特别注意:data2文件夹下的data1目录不能存在,否则会报错。可以自己尝试一下。

执行结果如下:

4、删除data2文件夹下的子文件夹和文件。

可以发现,data2文件夹已经不存在了。

小结

使用shutil模块对文件和目录的复制、移动、删除操作基本上就是这些了。看了这些例子再用shutil模块应该都没啥困难了吧。

[ Python入门教程 ] Python文件基本操作_shutil模块的更多相关文章

  1. [ Python入门教程 ] Python中JSON模块基本使用方法

    JSON (JavaScript Object Notation)是一种使用广泛的轻量数据格式,Python标准库中的json模块提供了一种简单的方法来编码和解码JSON格式的数据.用于完成字符串和p ...

  2. [ Python入门教程 ] Python字典数据类型及基本操作

    字典是Python中重要的数据类型,字典是由"键-值"对组成的集合,"键-值"对之间用逗号隔开,包含在一对花括号中.字典中的"值"通过&qu ...

  3. boost.python入门教程 ----python 嵌入c++

    Python语言简介 Python是一种脚本语言.以开放的开发接口和独特的语法著称.尽管Python在国内引起注意只有几年的时间,但实际上Python出现于上世纪90年代(据www.python.or ...

  4. [ Python入门教程 ] Python文件基本操作

    本文将python文件操作实例进行整理,以便后续取用. 文件打开和创建 Python中使用open()函数打开或创建文件.open()的声明如下: open(name[, mode[, bufferi ...

  5. [ Python入门教程 ] Python中日志记录模块logging使用实例

    python中的logging模块用于记录日志.用户可以根据程序实现需要自定义日志输出位置.日志级别以及日志格式. 将日志内容输出到屏幕 一个最简单的logging模块使用样例,直接打印显示日志内容到 ...

  6. [ Python入门教程 ] Python中日期时间datetime模块使用实例

    Python中datetime模块提供强大易用的日期处理功能,用于记录程序操作或修改时间.时间计算.日志时间显示等功能.datatime模块重新封装了time模块,提供的类包括date.time.da ...

  7. [ Python入门教程 ] Python生成随机数模块(random)使用方法

    1.使用randint(a,b)生成指定范围内的随机整数.randint(a,b)表示从序列range([a,b])中获取一个随机数,包括b. >>> random.randint( ...

  8. [ Python入门教程 ] Python基础语法

    Python的语法非常简练,因此用Python编写的程序可读性强.容易理解.本章将介绍Python的基本语法和概念. Python文件类型 1.源代码.Python的源代码的扩展名以py结尾,可直接运 ...

  9. [ Python入门教程 ] Python的控制语句

    Python控制语句由条件语句.循环语句构成.控制语句根据条件表达式控制程序的流转.本章将介绍Python中控制语句的基本语法. 条件判断语句 (1)if条件语句 if语句用于检测某个条件是否成立.如 ...

随机推荐

  1. Angular(04)-知识点脑图

    点击左键 => 拖拽图片 => 新标签页查看图片 => 放大拖拽查阅

  2. Liu Junqiao:工作中用到的命令以及问题汇总

    工作中用到的命令以及问题汇总 2019-11-29 查看系统运行时间,这个问题是因为我们在阿里云上有个机器,在某一天发现这台机器上有的服务莫名奇妙的停了,然后排查时怀疑机器被重启过用如下如下命令查看了 ...

  3. javascript---简介的切换图片效果。

    <!--切换图片--> <img src="img/9.gif" alt="" id="img"> <butt ...

  4. 【CentOS 7】CentOS 7各个版本镜像下载地址(转)

    参考链接:https://www.centos.org/download/mirrors/ https://www.cnblogs.com/defineconst/p/11176593.html

  5. ycsb 测试Hbase性能

    下载 github:https://github.com/brianfrankcooper/YCSB/releases/tag/0.10.0 wget https://github.com/brian ...

  6. vue事件监听机制

    vue事件是同步的.如果绑定了事件(组件标签上绑定事件) 组件的事件触发 组件调用时绑定事件 之后监听事件: $emit 抛出后活等着 $on ,如果监听到了则阻塞执行: 如果为监听到或者未绑定,则会 ...

  7. 什么是DaemonSet

    DaemonSet只管理Pod对象,通过nodeAffinity和Toleration两个调度器,保证每个节点上只有一个Pod 集群动态加入了新Node,DaemonSet中的Pod也会添加在新加入N ...

  8. SpringBoot+MyBatisPlus整合时提示:Invalid bound statement(not found):**.dao.UserDao.queryById

    场景 在使用SpringBoot+MyBatisPlus搭建后台启动项目时,使用EasyCode自动生成代码. 在访问后台接口时提示: Invilid bound statement (not fou ...

  9. Kibana中文汉化支持

    Kibana从6.6.0版本开始支持中文 参考:https://github.com/anbai-inc/Kibana_Hanization 汉化方法如下: 以现行最新版本7.2.0为例,测试机器为W ...

  10. openstack 搭建

    #所有节点修改ip,主机名和hosts解析 controller 10.0.0.11 controller compute1 10.0.0.31 compute1 #所有节点准备本地repo源 rm ...