23 Python的shutil模块

这篇具有很好参考价值的文章主要介绍了23 Python的shutil模块。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

概述

        在上一节,我们介绍了Python的argparse模块,包括:argparse模块中一些常用的类和函数。在这一节,我们将介绍Python的shutil模块。shutil模块是一个用于文件和文件夹操作的实用模块,它提供了一组用于处理文件和文件夹的高级接口,包括:文件和文件夹的复制、删除、移动、重命名等操作。shutil模块是Python标准库中的一部分,因此无需安装任何第三方库即可直接使用。

        下面,我们将逐一介绍shutil模块中一些常用的函数。

shutil.copy(src, dst)函数

        shutil.copy(src, dst)函数用于复制文件src到dst。如果目标文件已存在,则覆盖它。这个函数只会复制文件的内容,不会复制文件的元数据,比如:修改时间、访问权限等。如果需要完整地复制文件,则应该使用下面的shutil.copy2函数。

import shutil

# 复制文件
shutil.copy('path_to_src_file', 'path_to_dest_dir')

        上面的示例代码会将"path_to_src_file"文件复制到"path_to_dest_dir"目录。如果目标目录不存在,则shutil.copy函数会抛出一个异常。

shutil.copy2(src, dst)函数

        shutil.copy2(src, dst)函数用于复制文件src到dst,同时保留原始文件的元数据,比如:修改时间、访问权限等。如果目标文件已存在,则覆盖它。

import shutil

# 复制文件
shutil.copy2('path_to_src_file', 'path_to_dest_dir')

shutil.copytree(src, dst)函数

        shutil.copytree(src, dst)函数用于递归地复制文件夹src到dst。与shutil.copy和shutil.copy2不同,shutil.copytree可以复制整个目录树,而不仅仅是单个文件。如果目标目录不存在,shutil.copytree会创建它。如果目标目录已经存在,shutil.copytree会抛出一个异常。

import shutil

# 复制文件夹
shutil.copytree('path_to_src_dir', 'path_to_dest_dir')

shutil.rmtree(path)函数

        shutil.rmtree(path)函数用于递归地删除文件夹path及其内容。如果文件夹不存在,则抛出异常。与os.rmdir 不同,shutil.rmtree可以删除一个包含文件和子目录的目录树。如果目录树中存在任何文件或子目录,os.rmdir会抛出一个异常。

import shutil

# 删除文件夹
shutil.rmtree('path_to_dir')

shutil.move(src, dst)函数

        shutil.move(src, dst)函数用于将文件或文件夹src移动到dst。如果目标位置已存在同名文件或文件夹,则覆盖它。

import shutil

# 将文件移动到另一个目录
shutil.move('path_to_src_file', 'path_to_dest_dir')

shutil.make_archive函数

        shutil.make_archive(base_name, format, root_dir=None, base_dir=None, verbose=0, dry_run=False, owner=None, group=None, logger=None)函数用于创建一个压缩文件,返回其名称。其各个参数的具体含义如下。

        base_name:要创建的归档文件的基本名称,可以包含路径。

        format:归档文件的格式,比如:'zip'、'tar'、'gztar' 等。

        root_dir:要归档的目录树的根目录。如果未指定,则使用当前目录。

        base_dir:相对于root_dir的基准目录,用于确定要归档的文件。如果未指定,则使用root_dir。

        verbose:日志记录级别,0表示不记录,大于0表示记录。

        dry_run:如果为True,则只打印要执行的操作,而不实际执行。

        owner、group:归档文件的用户和组,仅在Unix系统上有效。

        logger:用于记录日志的logger对象。

import shutil

# 创建一个名为archive.zip的zip归档文件,包含path_to_dir目录下的所有文件和子目录  
shutil.make_archive('archive', 'zip', 'path_to_dir')

shutil.unpack_archive函数

        shutil.unpack_archive(filename, extract_dir, format=None)函数用于解压缩给定的压缩文件到指定的目录。其各个参数的具体含义如下。

        filename:要解压缩的归档文件的路径。

        extract_dir:解压缩的目标目录。

        format:归档文件的格式,比如:'zip'、'tar'、'gztar' 等。如果未指定,则根据文件名自动检测。

        pwd:用于解压缩加密归档文件的密码。

import shutil
  
# 解压缩名为archive.zip的归档文件到path_to_dir目录
shutil.unpack_archive('archive.zip', 'path_to_dir')

shutil.disk_usage(path)函数

        shutil.disk_usage(path)函数用于返回指定路径的磁盘使用情况。这个函数会返回一个元组,包含三个属性:指定路径的总磁盘空间(total)、指定路径中被占用的磁盘空间(used)、指定路径中未被占用的磁盘空间(free),都以字节数为单位进行表示。文章来源地址https://www.toymoban.com/news/detail-721250.html

import shutil
  
info = shutil.disk_usage('./')
# 输出:usage(total=268436500480, used=36055289856, free=232381210624)
print(info)

到了这里,关于23 Python的shutil模块的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 挑战30天学完Python:Day12 模块

    🎉 本系列为Python基础学习,原稿来源于 30-Days-Of-Python 英文项目,大奇主要是对其本地化翻译、逐条验证和补充,想通过30天完成正儿八经的系统化实践。此系列适合零基础同学,或仅了解Python一点知识,但又没有系统学习的使用者。总之如果你想提升自己的Python技能,欢迎

    2023年04月27日
    浏览(38)
  • Python入门教程23:math模块的用法

    **math是Python 的一个内置模块,它提供了许多数学函数和常量,用于进行数学计算。**以下是一些常用的math模块中的函数和常量: math.pi:圆周率π的近似值,约等于3.14159。 math.e:自然对数的底数e的近似值,约等于2.71828。 math.sqrt(x):求平方根。 math.pow(x, y):求x的y次方。 ma

    2024年02月12日
    浏览(41)
  • Python shutil copy(),copyfile() 和 copytree()函数

    最近在处理数据集,经常会使用shutil相关函数处理文件,今天专门观察了下copy(),copyfile() 和 copytree() 之间的差别。 移动具体文件 source只能是文件, destination可以是文件,也可以是目录 ,目录必须已经创建,所以在复制文件前需要 移动具体文件 source和destination都只能是文件

    2024年02月11日
    浏览(39)
  • 【100天精通python】Day23:正则表达式,基本语法与re模块详解示例

      目录  专栏导读  1 正则表达式概述 2 正则表达式语法 2.1 正则表达式语法元素

    2024年02月14日
    浏览(52)
  • 30天拿下Rust之引用

    概述         在Rust语言中,引用机制是其所有权系统的重要组成部分,它为开发者提供了一种既高效又安全的方式来访问和共享数据。引用可以被视为一个指向内存地址的指针,它允许我们间接地访问和操作存储在内存中的数据。与其他语言中的指针不同,Rust中的引用是

    2024年03月10日
    浏览(43)
  • 30天拿下Rust之切片

    概述         在Rust中,切片是一种非常重要的引用类型。它允许你安全地引用一段连续内存中的数据,而不需要拥有这些数据的所有权。切片不包含分配的内存空间,它仅仅是一个指向数据开始位置和长度的数据结构。切片是对数组的一个连续引用,它提供了一种方便、

    2024年03月13日
    浏览(52)
  • 30天拿下Rust之泛型

    概述         在Rust语言中,泛型是一种强大的工具,它允许我们编写可复用且灵活的代码。通过泛型,我们可以创建适用于多种类型的数据结构和函数,而无需为每种类型都重复编写相同的逻辑。在Rust中,泛型通过指定类型参数来实现,这些类型参数会在编译时被具体类

    2024年03月17日
    浏览(47)
  • 30天拿下Rust之输入输出

    概述         在软件开发中,输入输出(I/O)是任何应用程序的基本构建模块。Rust作为一门注重安全和性能的语言,在其标准库中提供了强大的I/O功能。这些功能使得Rust程序员能够非常轻松地进行标准I/O、文件读写等操作。 标准I/O         在Rust中,标准输入通常通

    2024年03月24日
    浏览(40)
  • 30天拿下Rust之图形编程

    概述         Rust语言以其卓越的安全性、性能和可靠性赢得了广大开发者的青睐,逐渐在系统编程、网络服务、游戏开发等领域崭露头角。随着Rust生态的日益繁荣,图形编程领域也涌现出一批优秀的框架和库,使得用Rust进行高效、安全的图形应用开发成为可能。 图形库

    2024年04月17日
    浏览(38)
  • 30天拿下Rust之高级类型

    概述         Rust作为一门系统编程语言,以其独特的内存管理方式和强大的类型系统著称。其中,高级类型的应用,为Rust的开发者提供了丰富的编程工具和手段,使得开发者可以更加灵活和高效地进行编程。 Newtype模式         Newtype模式是一种轻量级的设计模式,用

    2024年04月15日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包