pathlib
问题
pathlib 怎么用?和 os.path 有什么区别?
答案
基本操作
from pathlib import Path
# 创建路径
p = Path("/home/user/documents/file.txt")
p = Path.home() / "documents" / "file.txt" # / 运算符拼接
# 路径属性
p.name # "file.txt"
p.stem # "file"
p.suffix # ".txt"
p.parent # Path("/home/user/documents")
p.parts # ('/', 'home', 'user', 'documents', 'file.txt')
# 文件操作
p.exists()
p.is_file()
p.is_dir()
content = p.read_text(encoding="utf-8")
p.write_text("hello", encoding="utf-8")
# 遍历目录
for f in Path(".").glob("**/*.py"): # 递归查找所有 .py 文件
print(f)
for f in Path(".").iterdir(): # 列出当前目录内容
print(f.name)
pathlib vs os.path
| 操作 | os.path | pathlib |
|---|---|---|
| 拼接 | os.path.join(a, b) | Path(a) / b |
| 文件名 | os.path.basename(p) | p.name |
| 父目录 | os.path.dirname(p) | p.parent |
| 是否存在 | os.path.exists(p) | p.exists() |
| 读文件 | open(p).read() | p.read_text() |
推荐 pathlib
Python 3.6+ 推荐使用 pathlib,面向对象且更 Pythonic。大多数标准库函数也接受 Path 对象。