Pathlib 是 Python 标准库中的一个模块,用于处理文件和目录路径。与 os 模块相比,pathlib 提供了一个面向对象的路径操作方法,使路径操作更加直观和简洁。以下是 pathlib 模块的详细教程,包括架构概述、基础功能、进阶功能和高级教程,并附带详细的代码示例和注释。
官方文档链接
Pathlib 模块架构概述
Pathlib 提供了几个主要的类:
Path
: 通用路径类,适用于大多数文件系统操作。PosixPath
: 继承自Path
,专门用于 Unix/Linux 操作系统。WindowsPath
: 继承自Path
,专门用于 Windows 操作系统。
这些类提供了丰富的路径操作方法,包括路径解析、文件和目录操作等。
基础功能
1. 创建路径对象
from pathlib import Path
# 创建当前目录的 Path 对象
current_dir = Path('.')
print(current_dir.resolve()) # 输出当前目录的绝对路径
2. 解析路径
# 解析相对路径
relative_path = Path('some_directory/some_file.txt')
print(relative_path.resolve()) # 输出解析后的绝对路径
3. 检查路径属性
file_path = Path('some_directory/some_file.txt')
# 检查路径是否存在
print(file_path.exists())
# 检查是否为文件
print(file_path.is_file())
# 检查是否为目录
print(file_path.is_dir())
4. 遍历目录
# 遍历目录中的所有文件和子目录
for item in current_dir.iterdir():
print(item)
进阶功能
1. 创建文件和目录
# 创建新目录
new_dir = Path('new_directory')
new_dir.mkdir(exist_ok=True) # exist_ok=True 表示如果目录已存在,不会抛出异常
# 创建新文件
new_file = new_dir / 'new_file.txt'
new_file.touch() # 创建一个空文件
2. 读取和写入文件
# 写入文件
new_file.write_text('Hello, pathlib!')
# 读取文件内容
content = new_file.read_text()
print(content)
3. 路径拼接
# 拼接路径
subdir = new_dir / 'sub_directory'
subdir.mkdir(exist_ok=True)
print(subdir)
# 拼接文件路径
sub_file = subdir / 'sub_file.txt'
print(sub_file)
高级教程
1. 文件和目录操作
# 复制文件
import shutil
source = new_file
destination = new_dir / 'copied_file.txt'
shutil.copy(source, destination)
# 移动文件
moved_file = new_dir / 'moved_file.txt'
source.rename(moved_file)
# 删除文件
moved_file.unlink()
# 删除目录
subdir.rmdir() # 仅删除空目录
2. 递归遍历目录
# 递归遍历目录及其子目录
for item in new_dir.rglob('*'):
print(item)
3. 使用 Path 对象与字符串互转
# Path 对象转换为字符串
path_str = str(new_file)
print(path_str)
# 字符串转换为 Path 对象
path_obj = Path(path_str)
print(path_obj)
总结
Pathlib 提供了一个强大且直观的方式来处理文件和目录路径。通过本教程,您可以掌握从基础到高级的 pathlib 使用方法,快速上手并提高文件系统操作的效率。