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. iOS开发中全量日志的获取

    我们在app中对崩溃.卡顿.内存问题进行监控.一旦监控到问题,我们就需要记录下来,但是,很多问题的定位仅靠问题发生的那一刹那记录的信息是不够的,我们需要记录app的全量日志来获取更多的信息. 一,使用 ...

  2. SQL Server如何找出一个表包含的页信息(Page)

    在SQL Server中,如何找到一张表或某个索引拥有那些页面(page)呢? 有时候,我们在分析和研究(例如,死锁分析)的时候还真有这样的需求,那么如何做呢? SQL Server 2012提供了一 ...

  3. win10,7 80端口被占用的检测和解决方法

    这是一篇关于检测windows7和windows10系统“80端口”被哪个程序占用和怎么解决的小教程.此处用windows10作为范例 1.得到占用该端口的PID ①打开运行(快捷键win+R)(也可 ...

  4. 005.SQLServer AlwaysOn可用性组高可用简介

    一 AlwaysOn 可用性组 1.1 AlwaysOn 可用性组概述 AlwaysOn 可用性组功能是一个提供替代数据库镜像的企业级方案的高可用性和灾难恢复解决方案.SQL Server 2012 ...

  5. 【tf.keras】TensorFlow 1.x 到 2.0 的 API 变化

    TensorFlow 2.0 版本将 keras 作为高级 API,对于 keras boy/girl 来说,这就很友好了.tf.keras 从 1.x 版本迁移到 2.0 版本,需要修改几个地方. ...

  6. 信号处理函数陷阱:调用malloc导致死锁[转]

    概览 因malloc是加锁的,上网了解的相关信息,额外了解到信号处理规范使用,mark 正文 在执行malloc的过程中,跳转到了信号处理函数中.而信号处理函数在调用某个系统api时,内部又调用了ma ...

  7. 关于中医的一段对话 [ZZ] -- 思维训练故事

    转载自新浪博客 网址: http://blog.sina.cn/dpool/blog/s/blog_9880df4201015khq.html?type=-1 关于中医的一段对话 2013-01-26 ...

  8. sublime插件开发教程1

    学习sublime插件开发 好处有很多 比方说微信小程序插件 他官方自带的功能太鸡肋了 可以开发个sublime插件 写智能提示 甩掉微信几条街 sublime插件是用python开发的  所以学习s ...

  9. javascript ES6 新特性之 解构

    解构的作用是可以快速取得数组或对象当中的元素或属性,而无需使用arr[x]或者obj[key]等传统方式进行赋值 var arr = [1, 2, 3]; //传统方式 var a = arr[0], ...

  10. Excel导入导出DataGridView

    /// <summary> /// excel表保存到dataTable中 /// </summary> /// <param name="path" ...