Python之shutil模块
Python之shutil模块
shutil模块是高级的文件操作模块。之前学习的os模块之提供了对文件和目录进行一些简单的操作 功能。但是像---移动、复制、打包、压缩、
解压等功能os模块都没有提供。shutil模块其实是对os模块的补充。下面我们简单的介绍一下shutil模块的使用。
1、shutil的复制功能
shutil.copyfileobj(fsrc, fdst[,length=16*1024])
功能:复制一个文件的内容到另一个文件中,可以copy指定大小的内容
源码: def copyfileobj(fsrc, fdst, length=16*1024): while 1: buf = fsrc.read(length) if not buf: break fdst.write(buf) 注意:源码中的fsrc,fdst都是一个文件对象,都需要先打开然后才能进行复制操作 示例: import shutil f1 = open('file1', 'r') f2 = open('file2', 'w+') shutil.copyfileobj(f1, f2, length=16*1024)
shutil.copyfile(src, dst)
功能:复制文件内容,其实copyfile()方法调用的就是copyfileobj方法。他的内部会帮我们打开文件
示例:
import shutil shutil.copyfile('file1', 'file2')
shutil.copymode(src, dst)
功能:复制文件权限,不更改文件内容、组和用户。其实就是将一个文件的权限复制给另一个文件
示例:
import shutil shutil.copymode('file1', 'file2') 注意:这个方法必须要求目标文件一定要存在,否则会报错。
shutil.copystat(src, std)
功能:复制文件的所有状态信息,例如:权限、用户、组、时间等
shutil.copy(src, dst)
功能:复制文件的内容及权限,先copyfile后在copymode
shutil.copy2(src, dst)
功能:复制文件的内容以及文件的所有状态信息。先copyfile然后在copystat
shutil.copytree(src, dst, symlinks=False, ignore=None, copy_function=copy2,ignore_dangling_symlinks=False)
功能:递归的复制文件的内容以及状态信息,其实就是复制目录。
2、删除文件及目录
shutil.rmtree(path, ignore_errors=False, onerror=None)
功能:递归的删除文件,也可以删除目录
3、移动文件及目录
shutil.move(src, dst)
功能:递归的移动文件
4、压缩打包文件
shutil.make_archive(base_name, format, root_dir=None, base_dir=None, verbose=0,dry_run=0, owner=None, group=None, logger=None)
功能:打包压缩文件
参数:
base_name:压缩打包后的文件名或路径名
format:压缩或者打包格式。例如:'zip','tar', 'bztar', 'gztar'
root_dir:将哪个目录或文件压缩打包(也就是源文件)
示例:
import shutil shutil.make_archive('result', 'gztar', root_dir='./lib')
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器