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 教程:从入门到精通

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

相关推荐
a程序小傲1 天前
得物Java面试被问:反射机制的原理和应用场景
java·python·面试
于越海1 天前
学习小项目:用 Python 自动统计编程课绩点(5.0 制|百分制直算|重修取最高)
开发语言·笔记·python·学习·学习方法
xingzhemengyou11 天前
Python GUI中常用的after
开发语言·python
郝学胜-神的一滴1 天前
Python抽象基类与abc模块详解:优雅设计接口的利器
开发语言·python·程序人生
小南知更鸟1 天前
前端静态项目快速启动:python -m http.server 4173 与 npx serve . 全解析
前端·python·http
小钟不想敲代码1 天前
Python(三)
java·python·servlet
皮卡兵快跑1 天前
小试牛刀-基于几何要素分辨insar升降轨道数据
python·arcpy
j .1 天前
Java 集合的核心概念笔记
开发语言·python
宸津-代码粉碎机1 天前
Spring 6.0+Boot 3.0实战避坑全指南:5大类高频问题与解决方案(附代码示例)
java·数据仓库·hive·hadoop·python·技术文档编写
傻啦嘿哟1 天前
Python自动整理音乐文件:按艺术家和专辑分类歌曲
数据库·python·分类