Python 进阶(七):高级文件操作(shutil 模块)

❤️ 博客主页:水滴技术

🌸 订阅专栏:Python 入门核心技术

🚀 支持水滴:点赞 👍 + 收藏 ⭐ + 留言💬

文章目录

  • [1. 简介](#1. 简介)
  • [2. 常用函数](#2. 常用函数)
    • [2.1 复制文件](#2.1 复制文件)
    • [2.2 复制目录](#2.2 复制目录)
    • [2.3 移动文件或目录](#2.3 移动文件或目录)
    • [2.4 删除文件或目录](#2.4 删除文件或目录)
    • [2.5 压缩文件或目录](#2.5 压缩文件或目录)
    • [2.6 解压缩文件或目录](#2.6 解压缩文件或目录)
  • [3. 总结](#3. 总结)
  • 系列文章
  • 热门专栏

大家好,我是水滴~~

1. 简介

shutil (shell utility) 模块是 Python 标准库中的一个文件操作模块,提供了一些高级的文件操作函数,例如文件复制、移动、删除等。使用 shutil 模块可以方便地进行文件操作,而不需要手动编写复杂的文件操作代码。

2. 常用函数

2.1 复制文件

使用 shutil.copy(src, dst, *, follow_symlinks=True) 函数可以将文件从源路径复制到目标路径。其中,src 是源文件路径,dst 是目标文件路径。如果目标路径已存在,则会被覆盖。如果源路径是一个目录,则会抛出 IsADirectoryError 异常。如果目标路径是一个目录,则会将源路径中的文件复制到目标目录中,保持文件名不变。

python 复制代码
import shutil

shutil.copy('source.txt', 'destination.txt')

2.2 复制目录

使用 shutil.copytree(src, dst, symlinks=False, ignore=None, copy_function=copy2, ignore_dangling_symlinks=False) 函数可以将目录从源路径复制到目标路径。其中,src 是源目录路径,dst 是目标目录路径。如果目标路径已存在,则会抛出 FileExistsError 异常。symlinks 指定是否复制符号链接,默认为 Falseignore 指定要忽略的文件或目录的列表,默认为 Nonecopy_function 指定用于复制文件的函数,默认为 copy2ignore_dangling_symlinks 指定是否忽略指向不存在目标的符号链接,默认为 False

python 复制代码
import shutil

shutil.copytree('source_directory', 'destination_directory')

2.3 移动文件或目录

使用 shutil.move(src, dst, *, copy_function=copy2) 函数可以将文件或目录从源路径移动到目标路径。其中,src 是源文件或目录路径,dst 是目标文件或目录路径。如果目标路径已存在,则会被覆盖。如果源路径和目标路径在同一个文件系统上,则会使用 os.rename() 进行移动操作,否则会使用 shutil.copy2()os.remove() 进行复制和删除操作。copy_function 指定用于复制文件的函数,默认为 copy2

python 复制代码
import shutil

shutil.move('source.txt', 'destination.txt')

2.4 删除文件或目录

使用 shutil.rmtree(path, ignore_errors=False, onerror=None) 函数可以递归删除指定目录以及其下的所有文件和子目录。其中,path 是要删除的目录路径。如果 ignore_errorsTrue,则在删除过程中出现错误时会忽略错误。如果 onerror 为一个函数,则会在删除过程中出现错误时调用该函数。

python 复制代码
import shutil

shutil.rmtree('directory_to_delete')

2.5 压缩文件或目录

使用 shutil.make_archive(base_name, format, root_dir=None, base_dir=None, verbose=0, dry_run=False, owner=None, group=None, logger=None) 函数可以创建一个压缩文件,支持多种格式(例如 zip、tar、gztar 和 bztar)。其中,base_name 是压缩文件的名称,format 是格式类型,root_dir 是要压缩的根目录,base_dir 是要压缩的基本目录,verbose 指定是否显示详细信息,dry_run 指定是否只模拟操作而不实际执行,ownergroup 指定压缩文件的拥有者和组,logger 指定一个日志记录器。

python 复制代码
import shutil

shutil.make_archive('archive','zip', '.', 'dir_to_compress')

2.6 解压缩文件或目录

使用 shutil.unpack_archive(filename, extract_dir=None, format=None) 函数可以将一个压缩文件解压缩到指定目录中。其中,filename 是要解压的文件名,extract_dir 是解压后的目录路径,format 是压缩文件的格式类型,如果为 None,则会根据文件名自动识别。

python 复制代码
import shutil

shutil.unpack_archive('archive.zip', 'extracted_directory')

3. 总结

shutil 模块提供了一些高级的文件操作函数,可以方便地进行文件复制、移动、删除等操作。使用 shutil 模块可以大大简化文件操作代码的编写,提高代码的可读性和可维护性。同时,也可以使用 shutil 模块进行文件压缩和解压缩操作,提高文件处理效率。


系列文章

🔥 Python 进阶(一):PyCharm 下载、安装和使用

🔥 Python 进阶(二):操作字符串的常用方法

🔥 Python 进阶(三):正则表达式(re 模块)

🔥 Python 进阶(四):日期和时间(time、datetime、calendar 模块)

🔥 Python 进阶(五):os 模块

🔥 Python 进阶(六):文件读写(I/O)

热门专栏

👍 《Python入门核心技术

👍 《IDEA 教程:从入门到精通

👍 《Java 教程:从入门到精通

👍 《MySQL 教程:从入门到精通

👍 《大数据核心技术从入门到精通

相关推荐
喵手5 分钟前
Python爬虫实战:构建招聘会数据采集系统 - requests+lxml 实战企业名单爬取与智能分析!
爬虫·python·爬虫实战·requests·lxml·零基础python爬虫教学·招聘会数据采集
专注VB编程开发20年26 分钟前
python图片验证码识别selenium爬虫--超级鹰实现自动登录,滑块,点击
数据库·python·mysql
iFeng的小屋34 分钟前
【2026最新当当网爬虫分享】用Python爬取千本日本相关图书,自动分析价格分布!
开发语言·爬虫·python
民乐团扒谱机37 分钟前
【微科普】3D 演奏蠕虫分析图:解码音乐表演情感的 “可视化语言”
python·可视化·音乐·3d图·3d蠕虫
芝士爱知识a43 分钟前
AlphaGBM 深度解析:下一代基于 AI 与蒙特卡洛的智能期权分析平台
数据结构·人工智能·python·股票·alphagbm·ai 驱动的智能期权分析·期权
52Hz1181 小时前
力扣230.二叉搜索树中第k小的元素、199.二叉树的右视图、114.二叉树展开为链表
python·算法·leetcode
喵手1 小时前
Python爬虫实战:网页截图归档完全指南 - 构建生产级页面存证与历史回溯系统!
爬虫·python·爬虫实战·零基础python爬虫教学·网页截图归档·历史回溯·生产级方案
张3蜂2 小时前
Python 四大 Web 框架对比解析:FastAPI、Django、Flask 与 Tornado
前端·python·fastapi
2601_948374572 小时前
商用电子秤怎么选
大数据·python