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 指定是否复制符号链接,默认为 False。ignore 指定要忽略的文件或目录的列表,默认为 None。copy_function 指定用于复制文件的函数,默认为 copy2。ignore_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_errors 为 True,则在删除过程中出现错误时会忽略错误。如果 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 指定是否只模拟操作而不实际执行,owner 和 group 指定压缩文件的拥有者和组,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 教程:从入门到精通》

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

相关推荐
维克兜率天4 小时前
【维克】配对交易的季节性:哪些品种适合长拿?
android·开发语言·笔记·python·算法·kotlin·量化
27669582924 小时前
国航京东验证码/sm2加密请求头算法采集分析
python·阿里云·国航·机票采集·国航京东验证码·京东验证码·京东点选验证码
青少儿编程课堂4 小时前
树上启发式合并详解:子树颜色众数统计与复杂度拆解
c++·python·算法·bfs·信息学竞赛
在世修行4 小时前
干货:表格实时回填
python·qtablewidget
小白快快跑哦5 小时前
python-字符串全解(六):正则表达式-位置断言
python·正则表达式·位置断言
月光船幽幽5 小时前
拓扑实验三组协同验证方案
python·算法
智鸟科技GemeOpen开发者智能设备5 小时前
MQTT智能插座GSPM1B2 · 开发者实战指南
java·开发语言·python·物联网
Thinker QAQ5 小时前
并发编程(七):volatile——从语言规则到 CPU
java·python·go·并发编程·volatile·memory model
Fluxproxy5 小时前
Python BeautifulSoup4 超全实战教程|解决网页乱码、标签匹配、层级查找、数据提取难题
开发语言·python