pathlib简介
pathlib库在python 3.4以后已经成为标准库,基本上可以代替os.path
来处理路径。它采用完全面对对象的编程方式。
总共有6个类用来处理路径,大体可以分为两类:
- pure paths 单纯的路径计算操作而没有IO功能
- concrete paths 路经计算操作和IO功能
这6个类的继承关系如下:
可以看到PurePath
是所有类的基类,我们重点要掌握PurePath
和Path
这两个类,在Windows平台下路径对象会有Windows前缀,Unix平台上路径对象会有Posix前缀。
基本使用
列出所有子目录
|
|
列出指定类型的文件
|
|
路径拼接
可以使用/
符号来拼接路径
|
|
查询属性
|
|
打开文件
|
|
Pure paths
产生Pure paths的三种方式
class pathlib.PurePath(*pathsegments)
|
|
|
|
如果参数为空,则默认指定当前文件夹
|
|
当同时指定多个绝对路径,则使用最后一个
|
|
在Windows平台上,参数路径上如果有\
或者/
,则使用之前设置的盘符
|
|
class pathlib.PurePosixPath(*pathsegments)
|
|
class pathlib.PureWindowsPath(*pathsegments)
|
|
Path计算
|
|
str() 和 bytes()
|
|
常用属性和方法
|
|
Concrete paths
产生Concrete paths的三种方式
class pathlib.Path(*pathsegments)
|
|
class pathlib.PosixPath(*pathsegments)
|
|
class pathlib.WindowsPath(*pathsegments)
|
|
常用方法
cwd()
设置path对象为当前路径
|
|
stat()
获取文件或目录属性
|
|
chmod()
Unix系统修改文件或目录权限
exists()
判断文件或目录是否存在
|
|
glob()
列举文件
|
|
is_dir()
判断是否是目录
is_file()
判断是否是文件
is_symlink()
判断是否是链接文件
iterdir()
如果path指向一个目录,则返回该目录下所有内容的生成器
mkdir(mode=0o777, parents=False)
创建目录
open(mode='r', buffering=-1, encoding=None, errors=None, newline=None)
打开文件
owner()
获取文件所有者
rename(target)
修改名称
|
|
resolve()
Make the path absolute, resolving any symlinks. A new path object is returned
|
|
rmdir()
删除目录,目录必须为空
touch(mode=0o777, exist_ok=True)
创建空文件