0
点赞
收藏
分享

微信扫一扫

【Kaggle竞赛】shutil模块详解


shutil 是 Python 的内置常用模块之一,提供了对多个文件和文件夹的操作 api,另外它也提供了对文件的复制和删除功能。和常用于单个文件操作的 os 模块相比,显然它更算得上是一种高层次的文件操作工具。

 

目录和文件操作常用函数

常用 api 及功能总结如下框图所示:

shutil.copyfile( src, dst)   

从源 src 复制到 dst 中去。当然前提是目标地址是具备可写权限。抛出的异常信息为 IOException. 如果当前的 dst 已存在的话就会被覆盖掉。简单理解为复制文件。

shutil.move( src, dst)       

移动文件或重命名

shutil.copymode( src, dst)   

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

shutil.copystat( src, dst)   

复制权限、最后访问时间、最后修改时间

shutil.copy( src, dst)       

复制一个文件到一个文件或一个目录

shutil.copy2( src, dst)       

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

shutil.copy2( src, dst)       

如果两个位置的文件系统是一样的话相当于是 rename 操作,只是改名;如果是不在相同的文件系统的话就是做 move 操作

shutil.copytree( olddir, newdir, True/Flase)

把 olddir 拷贝一份 newdir,如果第 3 个参数是 True,则复制目录时将保持文件夹下的符号连接,如果第 3 个参数是 False,则将在复制的目录下生成物理副本来替代符号连接。简单理解为复制源目录下的所有文件。

shutil.rmtree( src )   

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

shutil.copyfile(src, dst, *, follow_symlinks=True)

函数功能详解:

将 src 复制到 dst 中去,注意这里 src 和 dst 都是文件的文件路径,数据形式为字符串切记,dst 必须是完整的目标文件名(文件路径+文件名)。

如果 src 和 dst 指定相同的文件,则引发 SameFileError。目的地址 dst 必须是可写入的,否则,将引发 OSError 异常。如果 dst 已经存在,它将被替换。此函数无法复制特殊文件,如字符或块设备和管道。

代码示例如下:

import shutil,os
src_path = 'E:/Kaggle Competiton/model.py'
dst_path= 'E:/Kaggle Competiton/The Nature Conservancy Fisheries Monitoring/'
shutil.copyfile(src_path,dst_path)

输出结果如下图所示:

【Kaggle竞赛】shutil模块详解_文件名

参考资料

  • ​​shutil — High-level file operations — Python 3.10.7 documentation​​


举报

相关推荐

0 条评论