pathlib 相对于os.path更加简单实用

python从3.4开始提供了pathlib,是一种用OO方式处理pathname的新机制。os.path是比较low-level的接口,用string处理pathname。

pathlib中主要有两个class,PurePath和Path,后者继承前者。PurePath用来支持对纯粹的pathname的各种操作,不会接触到filesystem。而Path则实现了调用filesystem接口。

pathlib 相对于os.path更加简单实用_第1张图片

 os和pathlib的对应关系

pathlib 相对于os.path更加简单实用_第2张图片

 

pathlib的常用基本方法

Path.cwd()  #获取当前目录
Path.parent    #返回父级目录
Path.parents  # 返回所有上级目录的列表
Path.parts  # 分割路径 类似os.path.split(), 不过返回元组
Path.root  # 返回路径的根目录
Path.is_dir()    # 判断是否是目录
Path.is_dir()    # 是否是文件
Path.exists()    # 判断路径是否存在
Path.open()    # 打开文件(支持with)
Path.resolve()    # 返回绝对路径
Path.iterdir()    # 遍历目录的子目录或者文件
Path.mkdir()    # 创建目录
Path.rename()    # 重命名路径
Path.unlink()    # 删除文件或目录(目录非空触发异常)
Path.joinpath()    # 拼接路径
# Path.iterdir()   #遍历目录
# Path.stem       #是文件名
# Path.suffix    #是文件后缀

获取文件属性 

# 文件属性比如文件大小,上次访问时间,创建时间,修改时间等等。

file = Path(__file__)
print(file.stat())
print(file.stat().st_size)
print(file.stat().st_atime)
print(file.stat().st_ctime)
print(file.stat().st_mtime)
#使用例子


from pathlib import Path

# Path.parents
for x in Path.cwd().parents:
    print(x)
print(Path.cwd().is_dir())
print(Path(__file__).resolve().parent)
print(Path(__file__).is_file())
print(Path.cwd().joinpath('xxx'))
print(Path(__file__).resolve().name)
print(Path(__file__).resolve().stem)
print(Path(__file__).resolve().suffix)
print(Path(__file__).resolve().suffixes)
print(Path(__file__).resolve().stem)
print(Path(__file__).resolve().suffix)
# iterdir() 可以扫描某个目录下的所有路径(文件和子目录), 打印的会是处理过的绝对路径
for i in Path(__file__).parent.iterdir():
    print(i)

注意:如果你只想得到字符串表示,不想要 WindowsPath 对象,可以用 str() 转化

import sys
from pathlib import Path
for x in Path.cwd().parents:
    print(type(x))
    sys.path.append(str(x))

pathlib 相对于os.path更加简单实用_第3张图片

你可能感兴趣的:(python,python,django)