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 @   流年中渲染了微笑  阅读(425)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示