pathlib
pathlib 是 Python 标准库(标准库说明无需额外安装)中用于处理文件路径和文件系统操作的模块。它用面向对象的方式来表示路径,相比传统的 os.path,代码更直观、可读性更好,也更适合日常开发。
Python 标准库指的是随 Python 解释器一起发布的模块,正常安装 Python 后就能直接 import,通常不需要再 pip install
例如,过去我们常这样拼接路径:
1 | import os |
而用 pathlib 可以写成:
1 | from pathlib import Path |
这种写法更自然,也更接近“路径”本身的语义。
基础使用
1. 创建路径对象
1 | from pathlib import Path |
Path 对象表示一个路径,但此时不一定要求这个文件真实存在。
2. 拼接路径
拼接路径一般使用/ 运算符.
1 | from pathlib import Path |
3. 获取当前目录和用户目录
比如我当前的工作目录是D:\code\cpp,而我的windows用户主目录是C:\Users\93723:
1 | from pathlib import Path |
4. 获取路径的常见属性
1 | from pathlib import Path |
常用属性说明:
name:文件名stem:去掉扩展名后的文件名suffix:扩展名parent:父目录parts:路径各部分组成的元组
进阶使用方法
1. 判断路径是否存在
1 | from pathlib import Path |
2. 遍历目录
遍历当前目录下所有内容:
1 | from pathlib import Path |
只统计当前目录下的文件数量:
1 | from pathlib import Path |
3. 查找文件
查找当前目录下所有 .py 文件:
1 | from pathlib import Path |
递归查找所有 .py 文件:
1 | from pathlib import Path |
4. 读取和写入文件
读取文本文件:
1 | from pathlib import Path |
写入文本文件:
1 | from pathlib import Path |
读取二进制文件:
1 | data = Path("a.bin").read_bytes() |
写入二进制文件:
1 | Path("a.bin").write_bytes(b"hello") |
5. 创建目录和文件
创建目录:
1 | from pathlib import Path |
递归创建目录:
1 | from pathlib import Path |
创建空文件:
1 | from pathlib import Path |
6. 删除、重命名、移动
删除文件:
1 | from pathlib import Path |
删除空目录:
1 | from pathlib import Path |
重命名或移动文件:
1 | from pathlib import Path |
7. 获取绝对路径
1 | from pathlib import Path |
resolve() 常用于把相对路径转换成绝对路径。
8. 获取相对路径
1 | from pathlib import Path |
输出:
1 | data/test.txt |
日常使用
下面这个例子会遍历某个目录下所有 .txt 文件,并打印文件名和大小:
1 | from pathlib import Path |
如果要递归统计整个目录下的文件数量:
1 | from pathlib import Path |
使用建议
在日常开发中,可以优先记住下面这些最常用的方法:
Path():创建路径对象/:拼接路径exists():判断是否存在is_file()/is_dir():判断文件或目录iterdir():遍历目录glob()/rglob():查找文件read_text()/write_text():读写文本mkdir():创建目录unlink():删除文件resolve():获取绝对路径