前面已经学过一些对文件内容进行操作的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()相同