os模块不仅提供了新建文件、删除文件、查看文件属性的操作功能,还提供了对文件路径的操作功能。但是,对于移动、复制、打包、压缩、解压文件及文件夹等操作,os模块没有提供相关的函数,此时需要用到shutil模块。shutil模块是对os模块中文件操作的补充,是Python自带的关于文件、文件夹、压缩文件的高层次的操作工具,类似于高级API
shutil.copyfile( src, dst,length=16*1024) #从原src复制到dst中去。 如果当前的dst已存在的话就会被覆盖掉,length 缓冲区大小,即src每次读取的长度 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 ) #递归删除一个目录以及目录内的所有内容
1. shutil.copyfile( src, dst, length=16*1024)
将文件内容拷贝到另一个文件中
import shutil shutil.copyfile('f1.log','f2.log')#目标文件无需存在
2.shutil.move( src, dst)
import shutil shutil.move('folder1','folder3')
3.shutil.copymode( src, dst)
仅拷贝权限。内容、组、用户均不变
import shutil
shutil.copymode('f1.log','f2.log')#目标文件必须存在
4.shutil.copystat( src, dst)
仅拷贝状态的信息,包括:mode bits, atime, mtime, flags
import shutil
shutil.copystat('f1.log','f2.log')#目标文件必须存在
5.shutil.copy( src, dst)
拷贝文件和权限 import shutil shutil.copy('f1.log','f2.log')
6.shutil.copy2( src, dst)
拷贝文件和状态信息 import shutil shutil.copy2('f1.log','f2.log')
7.shutil.copytree( olddir, newdir, True/Flase)
递归的去拷贝文件夹 import shutil shutil.copytree('folder1','folder2', ignore=shutil.ignore_patterns('*.pyc','tmp*')) #目标目录不能存在,注意对folder2目录父级目录要有可写权限,ignore的意思是排除
8.shutil.rmtree( src )
递归的去删除文件 import shutil shutil.rmtree('folder1')
9.shutil.copyfileobj(fsrc, fdst[, length])
将文件内容拷贝到另一个文件中 import shutil shutil.copyfileobj(open('old.xml','r'), open('new.xml','w'))