Python文件与路径操作神器:pathlib详解

温以宁
温以宁
发布时间:2026-10-16| 7人浏览过
原创

本文深入解析Python标准库pathlib模块,介绍PurePath与Path类的核心功能。重点讲解路径运算符重载、文件后缀匹配、相对路径转换及文件名修改等高级用法,并对比Path与os模块在文件读写上的差异,帮助开发者高效处理文件路径。

pathlib核心类:PurePath与Path简介

pathlib模块封装了PurePath和Path类,前者专门用于处理表示路径风格的字符串,而后者作为前者的子类,能够直接对路径对象进行操作。

路径运算符重载与使用

PurePath最实用的功能在于重载了运算符,这使得我们可以实现类似下面的简洁写法:

>>> from pathlib import Path, PurePath
>>> pp = PurePath("E:/")
>>> pp
PureWindowsPath('E:/')
>>> pp/"test"
PureWindowsPath('E:/test')

PurePath成员函数详解

针对PurePath对象,可以调用以下成员属性或成员函数:

其中,主文件名指的是去除文件后缀后的部分。

PurePath类中还包含一些相对复杂的函数,

>>> pp = PurePath("E:\Code\test.py")
# 用于匹配文件后缀
>>> pp.match("*.py")
True
# 去除基准路径
>>> pp.relative_to("E:\\")
PureWindowsPath('Code\test.py')
# 更改文件名
>>> pp.with_name('test1.py')
PureWindowsPath('E:/test1.py')
# 更改后缀名
>>> pp.with_suffix(".md")
PureWindowsPath('E:/Code\test.md')
# 更改主文件名
>>> pp.with_stem("help.md")
PureWindowsPath('E:/help.md.py')

Path

Path类的判定函数与文件操作

Path类继承自PurePath,并在其基础上增加了一系列判定函数,

  
判定函数,is_file,is_fifo,
is_block_device,is_char_device,
is_mount,is_symlink,is_socket

Path对象虽然支持打开并写入数据,但遗憾的是它没有提供close函数,因此并不建议直接使用这种方式。或者可以说,Path.open方法并非为程序员常规使用设计,因为Path类提供了更为便捷的读写方式,如read_bytes、read_text以及write_bytes和write_text。

例如:

>>> p = Path(r'E:\Documents\00\0324\Test.txt')
>>> p.write_text("hello world")
11
>>> p.read_text()
'hello world'
>>>

此外,该模块可直接操作文件和文件夹,提供了非常强大的文件处理功能。Path与os模块中提供的函数在功能上对应关系如下:

到此这篇关于python文件与路径操作神器 pathlib的文章就介绍到这了,更多相关python 中的pathlib内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。