当前位置:首页 > 科技  > 软件

Python 的 Shutil 模块,你都了解多少?

来源: 责编: 时间:2024-01-09 08:52:39 364观看
导读shutil 是 Python 标准库中的一个模块,提供了许多用于文件操作和目录操作的功能。无论是需要复制、移动、重命名、删除文件,还是进行目录操作,shutil 都是一个强大的工具。本文将会学习到 shutil 模块,包括其主要功能和示

Xun28资讯网——每日最新资讯28at.com

shutil 是 Python 标准库中的一个模块,提供了许多用于文件操作和目录操作的功能。无论是需要复制、移动、重命名、删除文件,还是进行目录操作,shutil 都是一个强大的工具。Xun28资讯网——每日最新资讯28at.com

本文将会学习到 shutil 模块,包括其主要功能和示例代码,以帮助你更好地理解如何使用它来处理文件和目录。Xun28资讯网——每日最新资讯28at.com

1、什么是shutil模块?

shutil 模块是 Python 标准库中的一个核心模块,提供了用于文件和目录操作的功能,包括复制、移动、重命名、删除文件和目录等。Xun28资讯网——每日最新资讯28at.com

shutil 模块是基于高级文件操作库 os 模块构建的,提供了更高级别的文件操作接口,使文件和目录的处理更加方便。Xun28资讯网——每日最新资讯28at.com

通过 shutil 模块,可以执行以下操作:Xun28资讯网——每日最新资讯28at.com

  • 复制文件和目录。
  • 移动文件和目录。
  • 重命名文件和目录。
  • 删除文件和目录。
  • 创建和删除目录。
  • 执行文件操作的递归操作。
  • 更多与文件和目录操作相关的功能。

shutil 模块是 Python 编程中的一个不可或缺的工具,可以更轻松地管理文件和目录。Xun28资讯网——每日最新资讯28at.com

2、文件和目录操作

(1)复制文件

shutil.copy(src, dst) 函数用于复制文件。将源文件复制到目标位置。Xun28资讯网——每日最新资讯28at.com

示例代码:Xun28资讯网——每日最新资讯28at.com

import shutil# 复制文件shutil.copy("source_file.txt", "destination_file.txt")

(2)复制目录

shutil.copytree(src, dst) 函数用于复制目录及其内容。递归地复制整个目录结构。Xun28资讯网——每日最新资讯28at.com

示例代码:Xun28资讯网——每日最新资讯28at.com

import shutil# 复制目录shutil.copytree("source_directory", "destination_directory")

(3)移动文件或目录

shutil.move(src, dst) 函数用于移动文件或目录。可以用于重命名文件或将文件或目录从一个位置移动到另一个位置。Xun28资讯网——每日最新资讯28at.com

示例代码:Xun28资讯网——每日最新资讯28at.com

import shutil# 移动文件shutil.move("source_file.txt", "destination_file.txt")# 移动目录shutil.move("source_directory", "destination_directory")

(4)重命名文件或目录

shutil.move(src, dst) 函数也可以用于重命名文件或目录。通过将新路径传递给 dst 参数,可以实现重命名操作。Xun28资讯网——每日最新资讯28at.com

示例代码:Xun28资讯网——每日最新资讯28at.com

import shutil# 重命名文件shutil.move("old_file.txt", "new_file.txt")# 重命名目录shutil.move("old_directory", "new_directory")

(5)删除文件

shutil.remove(file) 函数用于删除文件。Xun28资讯网——每日最新资讯28at.com

示例代码:Xun28资讯网——每日最新资讯28at.com

import shutil# 删除文件shutil.remove("file_to_delete.txt")

(6)删除目录

shutil.rmtree(directory) 函数用于递归地删除目录及其内容。Xun28资讯网——每日最新资讯28at.com

示例代码:Xun28资讯网——每日最新资讯28at.com

import shutil# 删除目录及其内容shutil.rmtree("directory_to_delete")

(7)创建目录

shutil.mkdir(directory) 函数用于创建目录。Xun28资讯网——每日最新资讯28at.com

示例代码:Xun28资讯网——每日最新资讯28at.com

import shutil# 创建目录shutil.mkdir("new_directory")

(8)删除目录中的文件

shutil.rmtree(directory) 函数会删除目录及其内容。如果只想删除目录中的文件但保留目录结构,可以使用以下方法:Xun28资讯网——每日最新资讯28at.com

import shutil# 删除目录中的文件,保留目录结构for root, dirs, files in os.walk("directory_to_clean"):    for file in files:        file_path = os.path.join(root, file)        os.remove(file_path)

3、文件操作的递归操作

shutil 模块提供了许多递归操作的函数,可以在文件操作中非常有用。这些函数可以递归地处理文件和目录,从而简化复杂的操作。Xun28资讯网——每日最新资讯28at.com

(1)递归复制

在 Python 中,使用 shutil.copytree(src, dst) 函数可以递归复制整个目录结构,包括子目录和文件。这个函数非常有用,可以将一个目录及其所有内容复制到另一个位置,保留了整个目录结构。Xun28资讯网——每日最新资讯28at.com

使用 shutil.copytree 来递归复制目录:Xun28资讯网——每日最新资讯28at.com

import shutil# 源目录和目标目录source_directory = "source_directory"destination_directory = "destination_directory"# 使用 copytree 复制源目录到目标目录shutil.copytree(source_directory, destination_directory)print(f"Directory '{source_directory}' has been recursively copied to '{destination_directory}'.")

在上面的示例中,source_directory 中的所有内容(包括子目录和文件)都会被递归复制到 destination_directory。可以在文件操作中保持目录结构的完整性。Xun28资讯网——每日最新资讯28at.com

(2)递归移动

shutil.move(src, dst) 函数可以用于递归地移动文件和目录,包括它们的子目录和内容。可以在不同目录之间移动文件和目录,并且可以用于重命名文件或目录。Xun28资讯网——每日最新资讯28at.com

使用 shutil.move 函数来递归地移动文件和目录:Xun28资讯网——每日最新资讯28at.com

import shutil# 源目录或文件和目标目录或文件source = "source_path"destination = "destination_path"# 使用 move 函数递归移动源到目标shutil.move(source, destination)print(f"'{source}' has been recursively moved to '{destination}'.")

source 可以是文件或目录,它及其内容将被递归地移动到 destination。如果 destination 是目录,那么 source 将成为 destination 目录的子目录。如果 destination 是文件路径,那么 source将被移动并重命名为 destinationXun28资讯网——每日最新资讯28at.com

(3)递归删除

shutil.rmtree(directory) 函数用于递归删除目录及其内容,包括子目录和文件。可以轻松地清理整个目录树。Xun28资讯网——每日最新资讯28at.com

使用 shutil.rmtree 函数来递归删除目录:Xun28资讯网——每日最新资讯28at.com

import shutil# 要删除的目录directory_to_delete = "directory_to_delete"# 使用 rmtree 函数递归删除目录及其内容shutil.rmtree(directory_to_delete)print(f"Directory '{directory_to_delete}' has been recursively deleted.")

在上面的示例中,shutil.rmtree 函数会删除 directory_to_delete 目录以及其中的所有子目录和文件。这是一个非常有用的功能,特别需要清理或卸载不再需要的目录时。Xun28资讯网——每日最新资讯28at.com

4、示例应用:备份文件

让我们看一个实际示例,使用 shutil 模块创建一个简单的文件备份脚本。Xun28资讯网——每日最新资讯28at.com

import shutilimport osimport time# 源目录和目标目录source_directory = "source_data"backup_directory = "backup_data"# 创建目标目录(如果不存在)if not os.path.exists(backup_directory):    os.makedirs(backup_directory)# 获取当前日期作为备份文件夹名称backup_folder = time.strftime("%Y-%m-%d")# 创建以当前日期为名称的备份子目录backup_path = os.path.join(backup_directory, backup_folder)os.makedirs(backup_path)# 复制源目录中的内容到备份目录shutil.copytree(source_directory, os.path.join(backup_path, source_directory))

此示例会创建一个备份文件夹,其中包含了源目录中的内容,以当前日期作为子目录名称。Xun28资讯网——每日最新资讯28at.com

5、结语

shutil 模块是 Python 编程中的一个强大工具,用于进行文件和目录操作。不仅可以进行基本的文件复制、移动、重命名和删除,还可以递归地处理目录结构。通过深入了解 shutil 模块的功能,可以更好地掌握如何使用它来处理文件和目录,从而提高代码的效率和可维护性。Xun28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-58966-0.htmlPython 的 Shutil 模块,你都了解多少?

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 分享CodePen上六个酷炫demo特效

下一篇: 不知道 Maven 的这个特性,你迟早要被坑

标签:
  • 热门焦点
  • 6月安卓手机好评榜:魅族20 Pro蝉联冠军

    性能榜和性价比榜之后,我们来看最后的安卓手机好评榜,数据来源安兔兔评测,收集时间2023年6月1日至6月30日,仅限国内市场。第一名:魅族20 Pro好评率:95%5月份的时候魅族20 Pro就是
  • 一年经验在二线城市面试后端的经验分享

    忠告这篇文章只适合2年内工作经验、甚至没有工作经验的朋友阅读。如果你是2年以上工作经验,请果断划走,对你没啥帮助~主人公这篇文章内容来自 「升职加薪」星球星友 的投稿,坐
  • 一篇聊聊Go错误封装机制

    %w 是用于错误包装(Error Wrapping)的格式化动词。它是用于 fmt.Errorf 和 fmt.Sprintf 函数中的一个特殊格式化动词,用于将一个错误(或其他可打印的值)包装在一个新的错误中。使
  • 使用Webdriver-manager解决浏览器与驱动不匹配所带来自动化无法执行的问题

    1、前言在我们使用 Selenium 进行 UI 自动化测试时,常常会因为浏览器驱动与浏览器版本不匹配,而导致自动化测试无法执行,需要手动去下载对应的驱动版本,并替换原有的驱动,可能还
  • 大厂卷向扁平化

    来源:新熵作者丨南枝 编辑丨月见大厂职级不香了。俗话说,兵无常势,水无常形,互联网企业调整职级体系并不稀奇。7月13日,淘宝天猫集团启动了近年来最大的人力制度改革,目前已形成一
  • 冯提莫签约抖音公会 前“斗鱼一姐”消失在直播间

    来源:直播观察提起“冯提莫”这个名字,很多网友或许听过,但应该不记得她是哪位主播了。其实,作为曾经的“斗鱼一姐”,冯提莫在游戏直播的年代影响力不输于现
  • 消息称小米汽车开始筛选交付中心:需至少120个车位

    IT之家 7 月 7 日消息,日前,有微博简介为“汽车行业从业者、长三角一体化拥护者”的微博用户 @长三角行健者 发文表示,据经销商集团反馈,小米汽车目前
  • 超级标准版旗舰!iQOO 11S全球首发iQOO超算独显芯片

    上半年已接近尾声,截至目前各大品牌旗下的顶级旗舰都已悉数亮相,而下半年即将推出的顶级旗舰已经成为了数码圈爆料的主流,其中就包括全新的iQOO 11S系
  • “买真退假” 这种“羊毛”不能薅

    □ 法治日报 记者 王春   □ 本报通讯员 胡佳丽  2020年初,还在上大学的小东加入了一个大学生兼职QQ群。群主“七王”在群里介绍一些刷单赚
Top