推荐用pathlib:现代、直观、面向对象、跨平台;os.path仅适合维护老代码或极简环境。pathlib自3.4引入,支持运算符拼接、exists()判断、read_text()读写、glob()遍历等链式操作。

Python路径操作推荐用 pathlib,它更直观、面向对象、跨平台性好;os.path 虽仍可用,但写法繁琐、易出错,适合维护老代码或极简环境。
从 Python 3.4 引入,Path 类把路径当对象处理,支持运算符(/)、属性访问和方法链式调用。
Path("data") / "raw" / "file.txt" → 自动处理分隔符,不用写 os.path.join
Path("config.json").exists(),比 os.path.exists("config.json") 更直觉Path("log.txt").read_text(encoding="utf-8") 或 .write_bytes(b"..."),省去 open/close[p for p in Path("src").glob("*.py") if p.is_file()],比 os.listdir + os.path.isfile 清晰得多适用于需支持 Python
os.path.join("home", "user", ".config") —— 注意顺序和开头斜杠问题os.path.basename("/a/b/c.txt") → "c.txt",而 os.path.dirname 返回目录部分os.path.abspath("data/../config.yaml"),但不自动展开 ~,需先用 os.path.expanduser
os.path.isdir("missing") 返回 False,但不报错)左边是 pathlib 写法,右边是等效的 os.path 写法:
立即学习“Python免费学习笔记(深入)”;
Path("a/b/c").parent ↔ os.path.dirname("a/b/c")
Path("x.tar.gz").suffixes → ['.tar', '.gz'] ↔ os.path.splitext("x.tar.gz")[1](只能得最后一个)Path("/tmp").is_absolute() ↔ os.path.isabs("/tmp")
Path("logs/error").mkdir(parents=True, exist_ok=True) ↔ os.makedirs("logs/error", exist_ok=True)
新项目、脚本、数据处理一律用 pathlib;团队已有大量 os.path 代码,可逐步替换,不必强求统一;写工具库要考虑最低 Python 版本——若要支持 3.3 及以下,只能用 os.path 或引入 pathlib2 兼容包。
以上就是Python路径操作怎么做_os与pathlib对比讲解【教程】的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号