Python 中 Shutil 模块详情

当我们需要在 Python 中执行文件和目录的复制、删除、移动等文件系统操作时,通常会使用 os 模块,但它并没有提供一些更高级别的功能,例如递归地复制多层目录、指定文件属性等。这时,就需要借助 shutil 模块了。

shutil 模块的介绍

shutil 是 Python 标准库下的模块,用于高级的文件操作,封装了 os 模块中一些常用的文件和目录操作函数,如 copy(), move(), rmtree() 等。同时,shutil 模块还提供了跨平台支持,可在不同的操作系统上执行相同的文件操作功能。

shutil 模块的常用函数

shutil.copy(src, dst)

复制 src(一个文件)到 dst。

import shutil

src_file = "/path/to/source/file.txt"
dst_file = "/path/to/destination/file.txt"

shutil.copy(src_file, dst_file)

shutil.copytree(src, dst, symlinks=False, ignore=None)

递归地复制整个目录树(src 和它的所有子目录)到 dst。dst 目录不能已存在。

import shutil

src_folder = "/path/to/source/folder"
dst_folder = "/path/to/destination/folder"

shutil.copytree(src_folder, dst_folder)

shutil.rmtree(path, ignore_errors=False, onerror=None)

删除整个目录树,包括所有子目录和文件。

import shutil

folder_to_delete = "/path/to/folder/to/delete"

shutil.rmtree(folder_to_delete)

shutil.move(src, dst)

将文件或目录从 src 移动到 dst,如果 dst 已经存在,会把 src 覆盖。

import shutil

src_path = "/path/to/source/file_or_folder"
dst_path = "/path/to/destination/"

shutil.move(src_path, dst_path)

示例

例 1:将一个文件夹中的所有文件同步到另一个文件夹

假设我们有一个名为 source_folder 的文件夹,里面有多个文件和子文件夹,我们想将其中的所有文件同步到名为 destination_folder 的目标文件夹中。这可以使用以下代码实现:

import os
import shutil

source_folder = "/path/to/source/folder"
destination_folder = "/path/to/destination/folder"

# 遍历 source_folder 中的所有文件和目录
for root, dirs, files in os.walk(source_folder):
    # 在 destination_folder 中创建相同的子目录
    for sub_dir in dirs:
        os.makedirs(os.path.join(destination_folder, root.replace(source_folder, ""), sub_dir), exist_ok=True)
    # 将 source_folder 中的所有文件复制到 destination_folder
    for file in files:
        shutil.copy(os.path.join(root, file), destination_folder + root.replace(source_folder, ""))

例 2:在 Python 中将一个目录和文件压缩成 zip 文件

假设我们有一个名为 folder_to_compress 的文件夹,我们想将其中的所有文件和文件夹压缩成一个 zip 文件并保存到名为 compressed.zip 的文件中。这可以使用以下代码实现:

import shutil

folder_to_compress = "/path/to/folder/to/compress"
compressed_file = "/path/to/compressed.zip"

shutil.make_archive(compressed_file[:-4], 'zip', folder_to_compress)

本例中,make_archive() 函数会将 folder_to_compress 文件夹及其下的所有文件和目录压缩为名为 compressed.zip 的 zip 文件。由于 make_archive() 函数本身不支持指定压缩文件名,因此我们使用 compressed_file[:-4] 来去掉文件名中的 .zip 扩展名,然后将 .zip 扩展名作为第二个参数传递给 make_archive() 函数来指定压缩格式。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python 中 Shutil 模块详情 - Python技术站

(0)
上一篇 2023年6月2日
下一篇 2023年6月2日

相关文章

  • Python基本结构之判断语句的用法详解

    Python基本结构之判断语句的用法详解 Python中判断语句主要有三种:if语句、if-else语句和if-elif-else语句。这些语句用于根据给定的条件来执行不同的代码块。下面详细介绍Python判断语句的用法。 if语句 if语句用于在给定条件为真时执行代码块。 if condition: # 如果条件为真,执行这里的代码 其中,conditio…

    python 2023年5月31日
    00
  • PyHacker编写URL批量采集器

    标准的markdown格式文本如下: PyHacker编写URL批量采集器 1. 准备工作 安装python3 安装PyCharm或其他编辑器 安装requests模块,可在命令行中使用以下命令进行安装 pip install requests 2. 编写代码 在PyCharm中新建一个Python文件,命名为”crawler.py”,输入以下代码: imp…

    python 2023年6月3日
    00
  • python爬取企查查企业信息之selenium自动模拟登录企查查

    在本攻略中,我们将介绍如何使用Selenium自动模拟登录企查查,并爬取企业信息。以下是一个完整攻略,包括两个示例。 步骤1:安装必要的库 首先,需要安装必要的库。我们将使用Selenium库来自动模拟登录企查查,并使用BeautifulSoup库来解析HTML页面。 以下是一个示例代码,演示如何使用pip安装Selenium和BeautifulSoup: …

    python 2023年5月15日
    00
  • Django rest framework工具包简单用法示例

    下面是关于“Django rest framework工具包简单用法示例”的完整攻略: 什么是Django rest framework Django rest framework 是一个用于构建 Web APIs 的强大工具包。它使得构建 Web API 变得简单、快捷而且幸福,因此备受 Django 开发者的喜爱。 Django rest framewo…

    python 2023年6月3日
    00
  • Python字符串、整数、和浮点型数相互转换实例

    当我们在使用Python编程时,有时候需要将字符串、整数以及浮点型数相互转换。下面是针对这个问题的完整攻略。 字符串转整数/浮点型 我们可以使用Python自带的int()函数将字符串转换成整数。如果字符串中出现了除数字以外的字符,程序就会报错。例如: num_str = "123" num_int = int(num_str) prin…

    python 2023年6月5日
    00
  • Python运行出现DeprecationWarning的问题及解决

    Python运行出现DeprecationWarning的问题及解决 在Python编程中,我们有时会遇到DeprecationWarning警告,这是因为我们使用了已经被弃用的函数或模块。本文将细讲解Python运行出现DeprecWarning的问题及解决方法,包括警告的原因、解决方法和两个例。 警告因 DeprecationWarning警告是因为我们…

    python 2023年5月13日
    00
  • python实现聊天小程序

    下面我将为你讲解Python实现聊天小程序的完整攻略。 准备工作 在开始实现聊天小程序前,需要进行一些准备工作: 安装Python,建议使用Python3.x版本 安装必要的第三方库,如socket和threading模块 设计聊天程序的逻辑和界面,可以使用Tkinter或PyQt等GUI库 实现聊天程序 1. 建立服务器 首先,需要建立服务器,以接收客户端…

    python 2023年5月23日
    00
  • 如何使用Python实现数据库中数据的关联查询?

    以下是使用Python实现数据库中数据的关联查询的完整攻略。 数据库中数据的关联查询简介 在数据库中,关联查询是指从多个表中检索数据的查询。在Python中,可以使用pymysql库连接到MySQL数据库,并使用JOIN子句实现关联查询。 步骤1:连接到数据库 在Python中,可以使用pymysql库连接MySQL数据库。以下是连接到MySQL数据库的基本…

    python 2023年5月12日
    00
合作推广
合作推广
分享本页
返回顶部