pathlib提供面向对象的路径操作,支持创建路径、拼接、访问组件、判断属性、读写文件、遍历目录、管理目录及获取文件信息,相比os.path更直观且跨平台兼容。
pathlib 是 Python 3.4+ 引入的用于处理文件路径的标准库模块,提供面向对象的方式操作路径,比传统的 os.path 更直观、更易读。以下是它的主要用法。
Path 是核心类,用来表示一个文件或目录路径。
from pathlib import Path; p = Path('/home/user/documents')
p = Path('/home') / 'user' / 'documents'
p = Path.cwd()
p = Path.home()
使用斜杠 / 操作符安全地拼接路径,无需担心斜杠方向问题。
path = Path('data') / 'raw' / 'file.txt'Path('data') / 'output.csv'
可以轻松提取路径中的不同组成部分。
p.name:获取文件名(含扩展名),如 report.pdf
p.stem:获取文件名主体,如 report
p.suffix:获取扩展名,如 .pdf
p.parent:获取上级目录p.parts:返回路径各部分组成的元组检查路径是否存在以及其类型。
p.exists():路径是否存在p.is_file():是否为文件p.is_dir():是否为目录p.is_symlink():是否为符号链接可以直接对文件进行读写,无需打开关闭。
content = Path('hello.txt').read_text(encoding='utf-8')
Path('output.log').write_text('Hello!', encoding='utf-8')
data = Path('image.png').read_bytes()
提供了多种方式列出目录内容。
p.iterdir():遍历目录下所有条目(返回生成器)p.glob("*.py"):匹配特定模式的文件,如所有 Python 文件p.rglob("*.txt"):递归匹配所有子目录中的 .txt 文件可直接管理目录结构。
Path('logs').mkdir(exist_ok=True)
Path('a/b/c').mkdir(pa
rents=True, exist_ok=True)
Path('temp').rmdir()
Path('old.txt').unlink(missing_ok=True)
获取文件的元数据。
p.stat():返回 stat 结构,包含大小、权限、修改时间等p.lstat():类似 stat,但不解析符号链接p.stat().st_size