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'))
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现