python 标准库之shutil

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

 

 

posted @ 2020-06-12 09:37  流年中渲染了微笑  阅读(405)  评论(0编辑  收藏  举报