python shutil文件操作工具使用实例分析


Posted in Python onDecember 25, 2019

这篇文章主要介绍了python shutil文件操作工具使用实例分析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

python中的shutil是一种高层次的文件操作工具,主要强大之处在于对文件的复制与删除操作更友好

一:shutil. copyfileobj(fsrc,fdst [23])

将 fsrc 的内容复制到 fdst。如果给出整数长度,则为缓冲区大小。注意,fsrc、fdst,必须是已经打开的文件,而不能传入文件名的字符串

def copyfileobj(fsrc, fdst, length=16*1024):
  """copy data from file-like object fsrc to file-like object fdst"""
  while 1:
    buf = fsrc.read(length)
    if not buf:
      break
    fdst.write(buf)

代码如下:

f1 = open("111.txt", "r",encoding="utf-8")
f2 = open("222.txt", "w", encoding="utf-8")
shutil.copyfileobj(fsrc=f1, fdst=f2,length=15)

二:def copyfile(src, dst, *, follow_symlinks=True)

直接拷贝整个文件。

运用代码如下:

shutil.copyfile("111.txt", "333.txt")

后面的333.txt可以不是已经存在的,如果存在的话,则会被覆盖掉。

三:shutil. copymode(src,dst,*,follow_symlinks=True)

只是会复制其权限其他的东西是不会被复制的

代码运用如下:

shutil.copymode("111.txt", "333.txt")

注意,这里的111.txt 333.txt都必须是已经存在的,表示把前者的权限复制到后者,也可以理解为给后者添加前者的权限。但不会改变后者的内容。

四:shutil. copystat(src,dst,*,follow_symlinks=True)

和上面的copymode类似,但copystat复制权限,最后访问 time,最后修改 time,以及从 src 到 dst 的标志。也不会改变后者的内容

shutil.copystat("111.txt", "333.txt")

五:shutil. copy(src,dst,*,follow_symlinks=True)

复制一个文件到一个文件或一个目录,如果 dst 指定目录,则使用 src 中的基本文件名将文件复制到 dst 中。返回新创建文件的路径。

复制到文件和前面类似:

shutil.copy("111.txt", dst="444.txt")

复制到目录,就是说我们可以只给第二个参数指定一个路径,以原名字复制到指定路径,像这样:

shutil.copy("111.txt", dst="D:\\222.txt")

而前面的copyfile则必须再路径后面加上命名,以给定的名字复制到指定路径,像这样:

shutil.copy("111.txt", dst="D:\\222.txt")

六:shutil. copy2(src,dst,*,follow_symlinks=True)

在copy上的基础上再复制文件最后访问时间与修改时间也复制过来了,类似于cp ?p的东西

七:shutil. copytree(src,dst,symlinks=False,ignore=None,copyfunction=copy2,ignore_dangling_symlinks=False)

拷贝目录,如果第3个参数是True,则复制目录时将保持文件夹下的符号连接,如果第3个参数是False,则将在复制的目录下生成物理副本来替代符号连接

shutil.copytree(src="11", dst="22")

注意:如果目录不在同一路径下,需要在前面加上绝对或相对路径

八:shutil. rmtree(路径,ignore_errors=False,onerror=None)

递归删除一个目录以及目录内的所有内容:

代码如下:

shutil.rmtree("E:\py project\python_ku\subprocess_demo\\11")

九:shutil. move(src,dst,copyfunction=copy2)

递归地将文件或目录(src)移动到另一个位置(dst)并返回目标

shutil.move(src="11", dst="D:\\")

上面的命令表示把当前路径下的11这个目录,移动到D:\\下

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python错误:AttributeError: 'module' object has no attribute 'setdefaultencoding'问题的解决方法
Aug 22 Python
在Python中处理XML的教程
Apr 29 Python
python 函数传参之传值还是传引用的分析
Sep 07 Python
Python3使用PyQt5制作简单的画板/手写板实例
Oct 19 Python
python初学之用户登录的实现过程(实例讲解)
Dec 23 Python
Django数据库连接丢失问题的解决方法
Dec 29 Python
Python中的Socket 与 ScoketServer 通信及遇到问题解决方法
Apr 01 Python
Django的models中on_delete参数详解
Jul 16 Python
python 实现图片上传接口开发 并生成可以访问的图片url
Dec 18 Python
python脚本后台执行方式
Dec 21 Python
Python实现列表中非负数保留,负数转化为指定的数值方式
Jun 04 Python
如何在 Matplotlib 中更改绘图背景的实现
Nov 26 Python
使用Python给头像加上圣诞帽或圣诞老人小图标附源码
Dec 25 #Python
如何基于python测量代码运行时间
Dec 25 #Python
python字典setdefault方法和get方法使用实例
Dec 25 #Python
Python 内置变量和函数的查看及说明介绍
Dec 25 #Python
python @propert装饰器使用方法原理解析
Dec 25 #Python
python 消除 futureWarning问题的解决
Dec 25 #Python
提升python处理速度原理及方法实例
Dec 25 #Python
You might like
台湾中原大学php教程孙仲岳主讲
2008/01/07 PHP
php5新改动之短标记启用方法
2008/09/11 PHP
使用php实现快钱支付功能(涉及到接口)
2013/07/01 PHP
php计算多维数组中所有值总和的方法
2015/06/24 PHP
yii2局部关闭(开启)csrf的验证的实例代码
2017/07/10 PHP
PHP内部实现打乱字符串顺序函数str_shuffle的方法
2019/02/14 PHP
javascript 通用loading动画效果实例代码
2014/01/14 Javascript
轻量级的原生js日历插件calendar.js使用指南
2015/04/28 Javascript
JQuery中DOM事件冒泡实例分析
2015/06/13 Javascript
javascript中的正则表达式使用详解
2015/08/30 Javascript
JS实现仿FLASH效果的竖排导航代码
2015/09/15 Javascript
基于AngularJS前端云组件最佳实践
2016/10/20 Javascript
JQuery和HTML5 Canvas实现弹幕效果
2017/01/04 Javascript
jQuery Validate表单验证插件的基本使用方法及功能拓展
2017/01/04 Javascript
js oncontextmenu事件使用详解
2017/03/25 Javascript
JS 60秒后重新发送验证码的实例讲解
2017/07/26 Javascript
js实现Tab选项卡切换效果
2020/07/17 Javascript
vue路由跳转传递参数的方式总结
2020/05/10 Javascript
layui实现显示数据表格、搜索和修改功能示例
2020/06/03 Javascript
python调用新浪微博API项目实践
2014/07/28 Python
在Python3中初学者应会的一些基本的提升效率的小技巧
2015/03/31 Python
Python聊天室实例程序分享
2016/01/05 Python
Python守护线程用法实例
2017/06/23 Python
python2与python3中关于对NaN类型数据的判断和转换方法
2018/10/30 Python
Pytorch 数据加载与数据预处理方式
2019/12/31 Python
Django的CVB实例详解
2020/02/10 Python
HTML5使用drawImage()方法绘制图像
2014/06/23 HTML / CSS
美国知名艺术画网站:Art.com
2017/02/09 全球购物
Ray-Ban雷朋西班牙官网:全球领先的太阳眼镜品牌
2018/11/28 全球购物
如何进行Linux分区优化
2016/09/13 面试题
解释一下钝化(Swap out)
2016/12/26 面试题
中学家长会邀请函
2014/02/03 职场文书
《老人与海鸥》教学反思
2016/02/16 职场文书
SQL Server数据库查询出现阻塞之性能调优
2022/04/10 SQL Server
python神经网络 tf.name_scope 和 tf.variable_scope 的区别
2022/05/04 Python
Java死锁的排查
2022/05/11 Java/Android