Python Pathlib 模块:简化文件路径和目录操作的利器

一、Pathlib 概述

Pathlib 是 Python 中处理文件和目录路径的模块。它在 Python3.4 版本中被引入,旨在简化路径操作,并提供一种更加直观的操作方式。路径可以描述成单独的抽象对象,相互之间可以执行操作,而无需担心路径的特定字符串表示形式,从而避免了使用字符串预处理方法的情况。

Python 中大多数文件路径库都是基于字符串,例如 os.path、os.chdir()、os.makedirs() 等,虽然它们是功能强大的工具,但是对于长字符串参数和重复性编码有一定的局限性。Pathlib 在这个层面上进行了大幅升级。

二、Pathlib 复制文件

在 Pathlib 中,Path 对象代表文件路径或目录路径。由于 Path 对象被看作是轻量级的、直观的对象,所以如果您需要复制文件,Pathlib 库肯定是您的不二之选。

下面是一个示例,基本演示了如何使用 Path 副本。

from pathlib import Path

if __name__ == '__main__':
    source_file = Path('source_file.txt')
    destination_file = Path('destination_file.txt')
    with source_file.open(mode='r') as source, destination_file.open(mode='w') as destination:
        destination.write(source.read())

上述代码旨在读取名为source_file.txt 的文件,并将其内容写入新文件destination_file.txt。可以使用 Path.open() 方法以指定的模式打开并操作文件。

三、Pathlib glob 与 rglob

glob 和 rglob 是 Pathlib 最重要的方法之一。注意,Path.glob() 和 Path.rglob() 方法分别迭代在当前目录和递归在其所有 descendent(后代)。

下面是一个示例,演示如何使用 rglob() 方法遍历目录树。

from pathlib import Path

dir_path = Path('.')
for file in dir_path.rglob('*.py'):
    print(file.name)

上述代码演示了遍历当前工作目录下所有 .py 文件的方法。glob 和 rglob 方法是递归目录结构的绝佳组合。

我们还可以使用许多其他的文件筛选器,如 *.txt , **/*.js 等等。除此之外,可以使用 .joinpath() 将多个路径链接在一起,以创建要搜索的完整路径。

四、Pathlib 过滤器

Pathlib 同时支持多种方式的文件过滤器,这使得它具有十分强大的灵活性。使用 Pathlib 通过名称、通配符、正则表达式、后缀名和目录过滤文件。

下面是一个示例,演示如何使用多个过滤器:

from pathlib import Path

path = Path('.')
for f in path.glob('*'):
    if not f.is_file() or str(f).endswith('.jpg'):
        continue
    print(f.name)

上述代码演示了如何遍历当前工作目录下的所有非 jpg 文件的名称。is_file() 方法和 endswith() 方法被广泛用于检查文件是否为目标类型。

五、Pathlib 内容检查

Pathlib 模块中的方法还提供了信任的内容检查方法,可以避免破坏文件系统。Pathlib 包也可以通过不同种类的路径操作查找和检索文件。

下面是一个示例,演示如何使用 Path.read_text() 从 disk 中读取文件并使用 Path.write_text() 写入文件:

from pathlib import Path

path = Path('sample.txt')
contents = path.read_text()
path.write_text(contents)

上述代码将文件的内容读取到字符串中并写入一个新文件中。

结束语

在本文中,我们对 Python 3 的 Pathlib 进行了全面介绍,包括复制文件、路径迭代、文件过滤器和内容检索。Pathlib 可以非常方便的替代 Python 2 中的 os.path,在 Python 应用程序中处理文件和目录路径时,这使得开发程序变得更加便捷。

原创文章,作者:NXMMT,如若转载,请注明出处:https://www.506064.com/n/330410.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
NXMMTNXMMT
上一篇 2025-01-16 15:46
下一篇 2025-01-16 15:46

相关推荐

  • 如何查看Anaconda中Python路径

    对Anaconda中Python路径即conda环境的查看进行详细的阐述。 一、使用命令行查看 1、在Windows系统中,可以使用命令提示符(cmd)或者Anaconda Pro…

    编程 2025-04-29
  • Python栈操作用法介绍

    如果你是一位Python开发工程师,那么你必须掌握Python中的栈操作。在Python中,栈是一个容器,提供后进先出(LIFO)的原则。这篇文章将通过多个方面详细地阐述Pytho…

    编程 2025-04-29
  • Python刷课:优化学习体验的利器

    Python刷课作为一种利用自动化技术优化学习体验的工具已经被广泛应用。它可以帮助用户自动登录、自动答题等,让用户在学习过程中可以更加专注于知识本身,提高效率,增加学习乐趣。 一、…

    编程 2025-04-29
  • lsw2u1:全能编程开发工程师的利器

    lsw2u1是一款多功能工具,可以为全能编程开发工程师提供便利的支持。本文将从多个方面对lsw2u1做详细阐述,并给出对应代码示例。 一、快速存取代码段 在日常开发中,我们总会使用…

    编程 2025-04-29
  • Python操作数组

    本文将从多个方面详细介绍如何使用Python操作5个数组成的列表。 一、数组的定义 数组是一种用于存储相同类型数据的数据结构。Python中的数组是通过列表来实现的,列表中可以存放…

    编程 2025-04-29
  • 光模块异常,SFP未认证(entityphysicalindex=6743835)——解决方案和

    如果您遇到类似optical module exception, sfp is not certified. (entityphysicalindex=6743835)的问题,那么…

    编程 2025-04-29
  • Python操作MySQL

    本文将从以下几个方面对Python操作MySQL进行详细阐述: 一、连接MySQL数据库 在使用Python操作MySQL之前,我们需要先连接MySQL数据库。在Python中,我…

    编程 2025-04-29
  • Python代码实现回文数最少操作次数

    本文将介绍如何使用Python解决一道经典的回文数问题:给定一个数n,按照一定规则对它进行若干次操作,使得n成为回文数,求最少的操作次数。 一、问题分析 首先,我们需要了解回文数的…

    编程 2025-04-29
  • Python磁盘操作全方位解析

    本篇文章将从多个方面对Python磁盘操作进行详细阐述,包括文件读写、文件夹创建、删除、文件搜索与遍历、文件重命名、移动、复制、文件权限修改等常用操作。 一、文件读写操作 文件读写…

    编程 2025-04-29
  • Python元祖操作用法介绍

    本文将从多个方面对Python元祖的操作进行详细阐述。包括:元祖定义及初始化、元祖遍历、元祖切片、元祖合并及比较、元祖解包等内容。 一、元祖定义及初始化 元祖在Python中属于序…

    编程 2025-04-29

发表回复

登录后才能评论