python路径操作:
3.4版本之前:os.path模块
3.4版本开始,建议使用pathlib模块,提供Path对象来操作,包括目录和文件
目录操作:
路径拼接和分解:
操作符/ Path对象/Path对象;Path对象/字符串;字符串/Path对象
分解:parts属性,可以返回路径中的每一部分
joinpath(*other):连接多个字符串到Path对象中
str():获取路径字符串;bytes():获取路径字符串的bytes
parent:目录的逻辑父目录;parents:父目录序列,索引0是直接的父
name:目录中的最后一个部分
suffix:目录中最后一个部分的扩展名
stem:目录最后一个部分,没有后缀
suffixes:返回多个扩展名列表
with_suffix(suffix):补充扩展名到路径尾部,返回新的路径,扩展名存在则无效
with_name(name):替换目录最后一个部分并返回一个新的路径
cwd():返回当前工作目录
home():返回当前家目录
is_dir():是否是目录,目录存在放回True
is_file():是否是普通文件,文件存在返回True
is_symlink():是否是软连接
is_socket():是否是socket文件
is_block_device():是否是块设备
is_char_device():是否是字符设备
is_absolute():是否是绝对路径
resolve():返回一个新的路径,这个新路径就是当前Path对象的绝对路径,如果是软连接则直接被解析
exists():目录或者文件是否存在
rmdir():删除空目录,没有提供判断目录为空的方法
touch(mode=0o666,exist_ok=True):创建一个文件
as_url():将路径返回成URL
mkdir(mode=0o777,parents=False,exist_ok=False):创建一个目录,parents,是否创建父目录,True等同于mkdir -p;False时,父目录不存在,则抛出FileNotFoundError;exist_ok,在3.5版本加入,False时,路径存在,抛出FileExistsError;True时,FileEexistsError被忽略
iterdir():迭代当前目录
通配符:
glob(pattern):通配给定的模式
rglob(pattern):通配给定的模式,递归目录
match(pattern):模式匹配,成功返回True
文件操作:
open():使用方法类似内建函数open,返回一个文件对象
read_bytes():以‘rb’读取路径对应的文件,并返回二进制流
read_text(encoding=None,errors=None):以‘rt’方式读取路径对应文件,返回文本
Path.write_bytes(data):以‘wb’方式写入数据到路径对应文件
write_text(data,encoding=None,errors=None):以‘wt’方式写入字符串到路径对应文件