跳到主要内容

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.pathpathlib
拼接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 对象。

相关链接