Python中shutil模块的学习笔记教程


Posted in Python onApril 04, 2017

介绍

shutil 名字来源于 shell utilities,有学习或了解过Linux的人应该都对 shell 不陌生,可以借此来记忆模块的名称。该模块拥有许多文件(夹)操作的功能,包括复制、移动、重命名、删除等等

一、chutil.copy(source, destination)

shutil.copy() 函数实现文件复制功能,将 source 文件复制到 destination 文件夹中,两个参数都是字符串格式。如果 destination 是一个文件名称,那么它会被用来当作复制后的文件名称,即等于 复制 + 重命名。

举例如下:

>> import shutil
 >> import os
 >> os.chdir('C:\')
 >> shutil.copy('C:\spam.txt', 'C:\delicious')
 'C:\delicious\spam.txt'
 >> shutil.copy('eggs.txt', 'C:\delicious\eggs2.txt')
 'C:\delicious\eggs2.txt'

如代码所示,该函数的返回值是复制成功后的字符串格式的文件路径

二、shutil.copytree(source, destination)

shutil.copytree()函数复制整个文件夹,将 source 文件夹中的所有内容复制到 destination 中,包括 source 里面的文件、子文件夹都会被复制过去。两个参数都是字符串格式。

注意:如果 destination 文件夹已经存在,该操作并返回一个 FileExistsError 错误,提示文件已存在。即表示,如果执行了该函数,程序会自动创建一个新文件夹(destination参数)并将 source 文件夹中的内容复制过去

举例如下:

>> import shutil
 >> import os
 >> os.chdir('C:\')
 >> shutil.copytree('C:\bacon', 'C:\bacon_backup')
 \'C:\bacon_backup'

如以上代码所示,该函数的返回值是复制成功后的文件夹的绝对路径字符串

所以该函数可以当成是一个备份功能

三、shutil.move(source, destination)

shutil.move() 函数会将 source 文件或文件夹移动到 destination 中。返回值是移动后文件的绝对路径字符串。

如果 destination 指向一个文件夹,那么 source 文件将被移动到 destination 中,并且保持其原有名字。例如:

>> import shutil
 >> shutil.move('C:\bacon.txt', 'C:\eggs')
 'C:\eggs\bacon.txt'

上例中,如果 C:\eggs 文件夹中已经存在了同名文件 bacon.txt,那么该文件将被来自于 source 中的同名文件所重写。

如果 destination 指向一个文件,那么 source 文件将被移动并重命名,如下:

>> shutil.move('C:\bacon.txt', 'C:\eggs\new_bacon.txt')
 'C:\eggs\new_bacon.txt'

等于是移动+重命名

<b>注意,如果 destination 是一个文件夹,即没有带后缀的路径名,那么 source 将被移动并重命名为 destination</b>,如下:

>> shutil.move('C:\bacon.txt', 'C:\eggs')
 'C:\eggs'

即 bacon.txt 文件已经被重命名为 eggs,是一个没有文件后缀的文件

最后,destination 文件夹必须是已经存在的,否则会引发异常:

>> shutil.move('spam.txt', 'C:\does_not_exist\eggs\ham')
 Traceback (most recent call last):
 File "D:\Python36\lib\shutil.py", line 538, in move
 os.rename(src, real_dst)
 FileNotFoundError: [WinError 3] 系统找不到指定的路径。: 'test.txt' -> 'C:\does_not_exist\eggs\ham'
 During handling of the above exception, another exception occurred:
 Traceback (most recent call last):
 File "

四、永久性删除文件和文件夹

这里有涉及到 os 模块中的相关函数

os.unlink(path) 会删除 path 路径文件

os.rmdir(path) 会删除 path 路径文件夹,但是这个文件夹必须是空的,不包含任何文件或子文件夹

shutil.rmtree(path) 会删除 path 路径文件夹,并且在这个文件夹里面的所有文件和子文件夹都会被删除

利用函数执行删除操作时,应该倍加谨慎,因为如果想要删除 txt 文件,而不小心写到了 rxt ,那么将会给自己带来麻烦

此时,我们可以利用字符串的 endswith 属性对文件格式进行检查与筛选

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
python搭建简易服务器分析与实现
Dec 15 Python
Python中多线程thread与threading的实现方法
Aug 18 Python
分析Python编程时利用wxPython来支持多线程的方法
Apr 07 Python
python类和继承用法实例
Jul 07 Python
python的paramiko模块实现远程控制和传输示例
Oct 13 Python
Python利用multiprocessing实现最简单的分布式作业调度系统实例
Nov 14 Python
opencv python 2D直方图的示例代码
Jul 20 Python
对python中词典的values值的修改或新增KEY详解
Jan 20 Python
Python 分享10个PyCharm技巧
Jul 13 Python
Python 动态导入对象,importlib.import_module()的使用方法
Aug 28 Python
python使用for...else跳出双层嵌套循环的方法实例
May 17 Python
pytorch中Schedule与warmup_steps的用法说明
May 24 Python
python 遍历字符串(含汉字)实例详解
Apr 04 #Python
python模拟登录并且保持cookie的方法详解
Apr 04 #Python
python 容器总结整理
Apr 04 #Python
详解Python中最难理解的点-装饰器
Apr 03 #Python
JSON Web Tokens的实现原理
Apr 02 #Python
Python 40行代码实现人脸识别功能
Apr 02 #Python
Python可变参数用法实例分析
Apr 02 #Python
You might like
一个程序下载的管理程序(四)
2006/10/09 PHP
ThinkPHP水印功能实现修复PNG透明水印并增加JPEG图片质量可调整
2014/11/05 PHP
详解php与ethereum客户端交互
2018/04/28 PHP
Laravel5.1 框架数据库操作DB运行原生SQL的方法分析
2020/01/07 PHP
JQuery的Validation插件中Remote验证的中文问题
2010/07/26 Javascript
jquery入门—数据删除与隔行变色以及图片预览
2013/01/07 Javascript
用jQuery旋转插件jqueryrotate制作转盘抽奖
2017/02/10 Javascript
Angular中ng-bind和ng-model的区别实例详解
2017/04/10 Javascript
动态统计当前输入内容的字节、字符数的实例详解
2017/10/27 Javascript
对Vue beforeRouteEnter 的next执行时机详解
2018/08/25 Javascript
详解Vue 动态组件与全局事件绑定总结
2018/11/11 Javascript
jQuery-ui插件sortable实现自由拖动排序
2018/12/01 jQuery
vue 页面跳转的实现方式
2021/01/12 Vue.js
[02:30]联想杯DOTA2完美世界全国高校联赛—北京站现场
2015/11/16 DOTA
Python类的动态修改的实例方法
2017/03/24 Python
Python基于Flask框架配置依赖包信息的项目迁移部署
2018/03/02 Python
python numpy格式化打印的实例
2018/05/14 Python
Python实现的合并两个有序数组算法示例
2019/03/04 Python
Python3.7 基于 pycryptodome 的AES加密解密、RSA加密解密、加签验签
2019/12/04 Python
Python通过Schema实现数据验证方式
2020/11/12 Python
python中os.remove()用法及注意事项
2021/01/31 Python
你的自行车健身专家:FaFit24
2016/11/16 全球购物
Calzedonia美国官网:意大利风格袜子、打底裤和沙滩装
2018/07/19 全球购物
世界上最大的在线汽车租赁预订平台:Rentalcars.com(支持中文)
2018/10/12 全球购物
Brasty波兰:香水、化妆品、手表网上商店
2019/04/15 全球购物
英国在线照明超市:Castlegate Lights
2019/10/30 全球购物
酒店副总岗位职责
2013/12/24 职场文书
企业总经理职责
2014/02/02 职场文书
办公室员工岗位工作职责
2014/03/10 职场文书
出国留学担保书
2014/05/20 职场文书
党员承诺践诺书
2014/05/20 职场文书
2015年家长学校工作总结
2015/04/22 职场文书
限期整改通知书
2015/04/22 职场文书
有关西游记的读书笔记
2015/06/25 职场文书
学校中层领导培训心得体会
2016/01/11 职场文书
哪类餐饮行业,最适合在高校创业?
2019/08/19 职场文书