Python之shutil库详解

简介: Python之shutil库详解

shutil 是 Python 中的一个高级文件操作库,它提供了许多对文件和文件集合的高级操作,这些操作在 os 模块中通常是以较低级别的函数形式提供的。shutil 库的主要功能包括复制、移动、删除文件和目录,以及文件和目录的归档等。


以下是 shutil 库中一些常用函数的详解:


1. 复制文件和目录

shutil.copy(src, dst, *, follow_symlinks=True):复制文件从 src 到 dst。如果 dst 是一个目录,那么文件将被复制到该目录下,并使用相同的文件名。

shutil.copy2(src, dst, *, follow_symlinks=True):与 copy() 类似,但会尝试复制文件的元数据(如时间戳和权限)。

shutil.copyfile(src, dst, *, follow_symlinks=True):只复制文件内容,不尝试复制元数据。

shutil.copyfileobj(fsrc, fdst, length=16*1024):将一个文件对象的内容复制到另一个文件对象。

shutil.copytree(src, dst, symlinks=False, ignore=None, copy_function=copy2, ignore_dangling_symlinks=False):递归地复制目录树。


2. 移动和重命名文件和目录

shutil.move(src, dst, copy_function=copy2):将文件或目录从 src 移动到 dst。如果 dst 已经存在并且是一个目录,那么 src 将被移动到该目录下。


3. 删除文件和目录

shutil.rmtree(path, ignore_errors=False, onerror=None):递归地删除目录及其内容。

shutil.remove(path, *, dir_fd=None):删除文件或目录(如果它是一个空目录)。


4. 归档和解压文件

shutil.make_archive(base_name, format, root_dir=None, base_dir=None, verbose=0, dry_run=0, owner=None, group=None, logger=None):创建归档文件(如 zip、tar 等)。

shutil.unpack_archive(filename, extract_dir=None, format=None):解压归档文件到指定目录。


5. 其他

shutil.disk_usage(path):返回包含磁盘使用统计信息的命名元组,该统计信息包括总块数、已用块数和可用块数。

shutil.get_terminal_size(fallback=(80, 24)):获取终端窗口的大小(以列和行表示)。

shutil.which(cmd, path=None, pathext=None):在 PATH 环境变量中搜索指定的命令,并返回其完整路径。


示例


复制文件


python复制代码
 import shutil  
 
   
 
 shutil.copy('source.txt', 'destination.txt')


删除目录及其内容


python复制代码
 shutil.rmtree('/path/to/directory')

创建 zip 归档


python复制代码
 shutil.make_archive('backup', 'zip', '/path/to/directory')


在使用 shutil 时,请确保你有足够的权限来执行相应的文件操作,并始终注意不要意外地删除或覆盖重要文件。


相关文章
|
18天前
|
XML JSON 数据库
Python的标准库
Python的标准库
146 77
|
1月前
|
机器学习/深度学习 算法 数据挖掘
数据分析的 10 个最佳 Python 库
数据分析的 10 个最佳 Python 库
89 4
数据分析的 10 个最佳 Python 库
|
19天前
|
XML JSON 数据库
Python的标准库
Python的标准库
45 11
|
1月前
|
人工智能 API 开发工具
aisuite:吴恩达发布开源Python库,一个接口调用多个大模型
吴恩达发布的开源Python库aisuite,提供了一个统一的接口来调用多个大型语言模型(LLM)服务。支持包括OpenAI、Anthropic、Azure等在内的11个模型平台,简化了多模型管理和测试的工作,促进了人工智能技术的应用和发展。
111 1
aisuite:吴恩达发布开源Python库,一个接口调用多个大模型
|
1月前
|
XML 存储 数据库
Python中的xmltodict库
xmltodict是Python中用于处理XML数据的强大库,可将XML数据与Python字典相互转换,适用于Web服务、配置文件读取及数据转换等场景。通过`parse`和`unparse`函数,轻松实现XML与字典间的转换,支持复杂结构和属性处理,并能有效管理错误。此外,还提供了实战案例,展示如何从XML配置文件中读取数据库连接信息并使用。
Python中的xmltodict库
|
19天前
|
数据可视化 Python
以下是一些常用的图表类型及其Python代码示例,使用Matplotlib和Seaborn库。
通过这些思维导图和分析说明表,您可以更直观地理解和选择适合的数据可视化图表类型,帮助更有效地展示和分析数据。
60 8
|
1月前
|
存储 人工智能 搜索推荐
Memoripy:支持 AI 应用上下文感知的记忆管理 Python 库
Memoripy 是一个 Python 库,用于管理 AI 应用中的上下文感知记忆,支持短期和长期存储,兼容 OpenAI 和 Ollama API。
97 6
Memoripy:支持 AI 应用上下文感知的记忆管理 Python 库
|
26天前
|
安全 API 文件存储
Yagmail邮件发送库:如何用Python实现自动化邮件营销?
本文详细介绍了如何使用Yagmail库实现自动化邮件营销。Yagmail是一个简洁强大的Python库,能简化邮件发送流程,支持文本、HTML邮件及附件发送,适用于数字营销场景。文章涵盖了Yagmail的基本使用、高级功能、案例分析及最佳实践,帮助读者轻松上手。
34 4
|
1月前
|
数据采集 数据可视化 数据处理
Python数据科学:Pandas库入门与实践
Python数据科学:Pandas库入门与实践
|
1月前
|
测试技术 Python
Python中的异步编程与`asyncio`库
Python中的异步编程与`asyncio`库