Skip to main content
 首页 » 程序教程

Python常用内置模块之shutil模块

2016年06月15日49770

前面已经学过一些对文件内容进行操作的Python知识,如文件的读取、写入等。下面就一起来学习一下Python对单个文件的整体操作,如文件的复制、移动等。这些操作在Python中可以通过shutil模块实现,一起来学习下Python常用内置模块之shutil模块的用法吧。

shutil模块提供了大量的文件的高级操作。特别针对文件拷贝和删除,主要功能为目录和文件操作以及压缩操作。对单个文件的操作也可参见os模块。shutil模块的主要用法如下:

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模块用法的示例代码:

import shutil
shutil.copyfile("oldfile","newfile")  # oldfile和newfile都只能是文件
shutil.copytree("olddir","newdir")  # olddir和newdir都只能是目录,且newdir必须不存在
shutil.move("oldpos","newpos")  # 移动文件或目录
shutil.rmtree("dir")  # 删除目录,与os.removedirs()相同
评论列表暂无评论
发表评论