真锋
永远保持一颗学习和专注的心
嵌入式视觉

【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)

输出结果如下图所示:

参考资料

赞赏
更多干货文章,欢迎关注我的微信公众号-嵌入式视觉。

发表回复

textsms
account_circle
email

  • hupnos

    您好,我运行您开源在github上的钢筋ai时,提示我EOFerror:ran out of input,请问您有遇到这种情况吗?是如何解决的?谢谢!

    4年前 回复
    • harley博主

      @hupnos: 我没有遇到这个问题,是不是你没有把原始的csv数据转化为符合程序输出的json格式。

      4年前 回复

嵌入式视觉

【Kaggle竞赛】shutil模块详解
shutil 是 Python 的内置常用模块之一,提供了对多个文件和文件夹的操作 api,另外它也提供了对文件的复制和删除功能。和常用于单个文件操作的 os 模块相比,显然它更算得上是一种高层次…
扫描二维码继续阅读
2018-12-14