📜  PEP 428:pathlib 模块——面向对象的文件系统路径. - Python (1)

📅  最后修改于: 2023-12-03 15:33:26.636000             🧑  作者: Mango

PEP 428:pathlib 模块——面向对象的文件系统路径.

介绍

PEP 428 引入了 Python 的 pathlib 模块。它提供了一种面向对象的风格来操作文件系统路径,与平台无关,适用于 Unix 和 Windows 等环境。

使用 pathlib 模块,您可以轻松地操作文件路径、匹配文件、迭代目录等。

基本使用

让我们从一个简单的例子开始,使用 pathlib 模块来查找文件。

from pathlib import Path

# 获取当前目录
path = Path('.')
for file in path.glob('*.txt'):
    print(file)

在上面的代码中,我们首先从 pathlib 中导入 Path 类,然后初始化它以查找当前目录中的所有 .txt 文件。使用 glob() 方法,它返回一个迭代器,该迭代器按名称扫描目录并返回所有匹配的文件路径。

我们可以使用 Path 对象组合运算符来创建新的文件或目录路径。例如,使用 / 运算符,它会将两个路径组合在一起。

path = Path('.')
new_dir = path / 'new_folder'
new_dir.mkdir()

在上面的代码中,我们使用 / 运算符将当前目录下的 'new_folder' 与目录路径组合,并使用 mkdir() 方法创建新目录。

高级使用

除了基本使用之外,pathlib 模块还提供了许多其他方法来轻松地操作文件路径。

假设现在我们有一个文件,我们想读取它的内容并编辑它。

path = Path('example.txt')
with path.open() as file:
    content = file.read()
content = content.replace('old_text', 'new_text')
with path.open(mode='w') as file:
    file.write(content)

在上面的代码中,我们创建了一个 Path 对象,使用 open() 方法打开文件并读取其内容。我们使用字符串的 replace() 方法将 'old_text' 替换为 'new_text'。然后,我们使用 mode='w' 重新打开文件并写入新内容。

总结

在本篇文章中,我们介绍了 Python 的 pathlib 模块,它提供了一种面向对象的风格来操作文件路径、匹配文件、迭代目录等。使用 pathlib,您可以轻松地操作文件系统路径,与平台无关,适用于 Unix 和 Windows 等环境。无需借助其他第三方库,您可以轻松地完成许多文件和目录操作。