pathlib用path对象替代字符串拼接路径,跨平台兼容、操作直观可靠;支持/运算符拼接、内置exists()等方法、read_text()等i/o接口及resolve()解析路径。

用Path对象替代字符串拼接路径
传统用os.path.join()或字符串+操作拼路径,容易出错、跨平台兼容性差。pathlib用面向对象方式处理路径,更直观可靠。
直接导入并创建Path实例:
- from pathlib import Path
-
p = Path("/home/user/docs") —— 自动适配系统分隔符(Windows用
\,Linux/macOS用/) -
p / "report.txt" —— 用
/运算符拼子路径,比os.path.join(p, "report.txt")简洁自然
常用路径操作一步到位
Path对象自带大量实用方法,无需额外调用os模块:
- p.exists() 判断路径是否存在
- p.is_file() 或 p.is_dir() 判断类型
-
p.parent 获取上一级目录;p.name 取文件名;p.suffix 取扩展名(如
.py) - list(p.iterdir()) 遍历当前目录下所有子项(返回Path对象列表)
- list(p.rglob("*.py")) 递归查找所有.py文件
读写文件不再依赖open()手动管理
Path对象提供简洁的I/O接口,适合小文件快速操作:
立即学习“Python免费学习笔记(深入)”;
- p.read_text(encoding="utf-8") —— 读取文本内容(自动编码解码)
- p.write_text("hello\nworld", encoding="utf-8") —— 写入文本(会覆盖原文件)
- p.read_bytes() 和 p.write_bytes(...) 处理二进制数据
- 大文件或需精细控制(如逐行读、追加写),仍建议用
with p.open(...) as f:,它返回标准file对象
路径解析与跨平台适配要点
pathlib默认按当前系统规则解析路径,但要注意几个易错点:
- 相对路径以当前工作目录为基准,可用Path.cwd()查看
- 用p.resolve()获取绝对路径(自动处理
..和.,且检查存在性) - Windows下盘符路径如
Path("C:/temp")可正常工作;反斜杠字符串需用原始字符串r"C:\temp"或正斜杠 - 避免混合使用
str(p)和Path对象——多数情况直接传Path即可被Python标准库接受(如shutil.copy(p, q))









