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日

相关文章

  • django2+uwsgi+nginx上线部署到服务器Ubuntu16.04

    接下来我将为您讲解“django2+uwsgi+nginx上线部署到服务器Ubuntu16.04”的完整攻略。 准备工作 在进行上线部署前,我们需要先做好一些准备工作: 确认服务器已安装Ubuntu16.04操作系统。 安装必要的软件包,如Python3、pip、virtualenv、nginx、uwsgi和git等。 在服务器上创建项目文件夹,并将Djan…

    python 2023年6月3日
    00
  • Django实现随机图形验证码的示例

    下面是Django实现随机图形验证码的完整攻略: 1. 安装依赖包 实现随机图形验证码需要使用到Python的pillow库,因此需要先安装依赖包: pip install pillow 2. 创建验证码视图函数 在Django项目的一个应用中创建一个验证码视图函数,如下所示: from io import BytesIO from random impor…

    python 2023年6月3日
    00
  • 详解pandas的外部数据导入与常用方法

    我可以为您讲解一下“详解pandas的外部数据导入与常用方法”的完整实例教程。以下是教程的详细内容: 详解pandas的外部数据导入与常用方法 导入pandas模块和数据文件 在运行本教程之前,我们需要先安装pandas模块。可以通过pip安装: pip install pandas 安装完成后,我们需要导入pandas模块,并加载本次教程所需的数据文件。 …

    python 2023年5月13日
    00
  • python中sets模块的用法实例

    完整的攻略如下: Python中Sets模块的用法实例 Sets模块简介 Python中的Sets模块,是集合(Set)的意思。Sets模块在Python 2.4及以上版本中都可以使用,它提供了一些有用的方法,可以用来操作和处理集合类型的数据。Sets模块包含了三个类,分别是Set、ImmutableSet和BaseSet。 Sets模块的基本用法 Pyth…

    python 2023年5月13日
    00
  • anaconda中安装的python环境中没有pip3的问题及解决

    问题: 在使用anaconda中安装的python环境时,有时会遇到没有pip3的情况,如何解决这个问题呢? 解决方法: 在anaconda中创建一个新的虚拟环境,再安装pip3 首先,打开anaconda prompt,输入以下命令,创建一个新的虚拟环境: conda create -n py35 python=3.5 其中,py35是虚拟环境的名称,可以…

    python 2023年5月14日
    00
  • 3个 Python 编程技巧

    以下是完整的攻略。 三个Python编程技巧 Python作为一种解释性语言,具有简单易学,语法简洁,适合快速开发的特点。但是,要成为一名优秀的Python开发者,还需要掌握一些高级的技巧。在本文中,我们将会分享三个Python编程技巧。 把if语句与字典结合使用 在Python中,字典(dictionary)作为一种非常重要的数据类型,具有存储键-值对的特…

    python 2023年5月13日
    00
  • python3使用requests模块爬取页面内容的实战演练

    当我们想要爬取网页数据时,Python的requests模块可以说是必不可少的一个工具。下面是使用Python3中requests模块爬取页面内容的实战演练的完整攻略。 1. 准备工作 首先,我们需要安装Python的requests模块。在命令行中输入以下命令进行安装: pip3 install requests 在这里,我们还需要一个网站,作为我们的爬取…

    python 2023年5月14日
    00
  • Python实现微信小程序自动操作工具

    Python实现微信小程序自动操作工具 本攻略将详细介绍如何使用Python实现微信小程序自动操作工具,方便开发者快速进行小程序的测试、批量操作等。 前置条件 熟悉Python编程语言; 了解微信小程序的基本操作和运行机制; 安装selenium、chromedriver和wxpy等Python库。 实现步骤 1. 安装selenium和chromedriv…

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