Python-Pathlib库基础使用教程

本文最后更新于:2022年7月21日 下午

Python-Pathlib库基础使用教程

深度学习处理数据的时候经常使用这个Python库,Pathlib能够很方便地遍历各种样子的文件目录,性能也很好。

常用操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
p = Path(r'd:\test\tt.txt.bk')
p.name # 获取文件名
# tt.txt.bk
p.stem # 获取文件名除后缀的部分
# tt.txt
p.suffix # 文件后缀
# .bk
p.suffixs # 文件的后缀们...
# ['.txt', '.bk']
p.parent # 相当于dirnanme
# WindowsPath('d:/test')
p.parents # 返回一个iterable, 包含所有父目录
# <WindowsPath.parents>
for i in p.parents:
print(i)
# d:\test
# d:\
a.parts # 将路径通过分隔符分割成一个元祖
# ('d:\\', 'test', 'tt.txt.bk')
1
2
3
4
5
p = Path(r'd:\test')
p = Path(p, 'tt.txt') # 字符串拼接
p.exists() # 判断文件是否存在
p.is_file() # 判断是否是文件
p.is_dir() # 判断是否是目录

遍历❤

1
2
3
4
5
p = Path(r'd:\test')
# WindowsPath('d:/test')
p.iterdir() # 相当于os.listdir 列出子目录/文件
p.glob('*') # 相当于os.listdir, 列出符合条件的子目录/文件但是可以添加匹配条件
p.rglob('*') # 相当于os.walk, 递归列出符合条件的子目录/文件也可以添加匹配条件
1
2
3
4
5
6
7
8
9
* # 所有
? # 单个字符
. # 当前目录
.. # 上一级目录
[0-9] [a-z] [A-Z] # 字面意思
[A-Za-z] # 大小写字母 windows路径不分大小写
[0-9A-Za-Z] # 数字和字母

** # 表示 “此目录以及所有子目录,递归”

创建文件夹

1
2
3
4
p = Path(r'd:\test\tt\dd')
p.mkdir(exist_ok=True) # 创建文件目录(前提是tt目录存在, 否则会报错)
# 一般我会使用下面这种创建方法
p.mkdir((exist_ok=True, parents=True) # 递归创建文件目录

文件详细信息(size, createtime…)

1
2
3
4
5
6
7
8
9
p = Path(r'd:\test\tt.txt')
p.stat() # 获取详细信息
# os.stat_result(st_mode=33206, st_ino=562949953579011, st_dev=3870140380, st_nlink=1, st_uid=0, st_gid=0, st_size=0, st_atime=1525254557, st_mtime=1525254557, st_ctime=1525254557)
p.stat().st_size # 文件大小
# 0
p.stat().st_ctime # 创建时间
# 1525254557.2090347
# 其他的信息也可以通过相同方式获取
p.stat().st_mtime # 修改时间

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!