系列文章目录
文章目录
-
目录
系列文章目录
文章目录
前言
一、Pathlib是什么?
二、使用步骤
前言
pathlib
是 Python 标准库中用于操作文件和目录路径的模块,自 Python 3.4 起引入。它提供了一种面向对象的方式处理路径,使路径操作更加简洁、可读和跨平台。pathlib
取代了传统模块如 os.path
和部分 shutil
的功能,成为推荐的路径操作工具。
一、Pathlib是什么?
pathlib
是 Python 标准库中用于操作文件和目录路径的模块,自 Python 3.4 起引入。它提供了一种面向对象的方式处理路径,使路径操作更加简洁、可读和跨平台。pathlib
取代了传统模块如 os.path
和部分 shutil
的功能,成为推荐的路径操作工具。
二、使用步骤
- 面向对象:通过类和方法操作路径,避免字符串拼接。
- 跨平台:自动处理 Windows 和 POSIX(Linux/Unix/macOS)路径的差异。
- 功能丰富:支持路径解析、文件操作、目录管理等多种功能。
- 高可读性:语法简洁直观,易于理解和维护。
- 支持类型化路径:
Path
:用于处理通用路径。PurePath
:只处理路径字符串,不访问实际文件系统。
创建路径对象
from pathlib import Path# 创建一个路径对象
p = Path("/home/user/example.txt")
print(p) # 输出: /home/user/example.txt
动态构建路径
from pathlib import Pathbase = Path("/home/user")
file_path = base / "documents" / "file.txt" # 拼接路径
print(file_path) # 输出: /home/user/documents/file.txt
检查路径类型
from pathlib import Pathp = Path("/home/user/example.txt")
print(p.exists()) # 路径是否存在
print(p.is_file()) # 是否是文件
print(p.is_dir()) # 是否是目录
获取路径信息
p = Path("/home/user/example.txt")
print(p.name) # 文件名: example.txt
print(p.stem) # 文件名不含后缀: example
print(p.suffix) # 文件后缀: .txt
print(p.parent) # 父目录: /home/user
print(p.parts) # 路径各部分: ('/', 'home', 'user', 'example.txt')
文件与目录操作
from pathlib import Path# 创建目录
dir_path = Path("/home/user/new_folder")
dir_path.mkdir(parents=True, exist_ok=True) # 递归创建目录# 写入文件
file_path = dir_path / "example.txt"
file_path.write_text("Hello, pathlib!", encoding="utf-8")# 读取文件
content = file_path.read_text(encoding="utf-8")
print(content) # 输出: Hello, pathlib!# 删除文件
file_path.unlink()# 删除目录(仅删除空目录)
dir_path.rmdir()
遍历目录
from pathlib import Pathdir_path = Path("/home/user")
for item in dir_path.iterdir():print(item) # 列出目录中的所有文件和子目录
匹配文件
from pathlib import Pathdir_path = Path("/home/user")
# 匹配 .txt 文件
for txt_file in dir_path.glob("*.txt"):print(txt_file)# 递归匹配 .txt 文件
for txt_file in dir_path.rglob("*.txt"):print(txt_file)
功能 | os.path | pathlib |
---|---|---|
面向对象支持 | 否 | 是 |
跨平台支持 | 需要手动处理路径分隔符 | 自动适配 |
路径拼接 | 使用 os.path.join() | 使用 / 运算符 |
代码可读性 | 较低 | 高 |
文件操作支持 | 依赖其他模块(如 os 和 shutil ) | 内置方法,如 write_text() 等 |