Python之pathlib库

1、from pathlib import Path

Path.iterdir()  #遍历目录的子目录或者文件
Path.is_dir()  #判断是否是目录
Path.glob()  #过滤目录(返回生成器)
Path.resolve()  #返回绝对路径
Path.exists()  #判断路径是否存在
Path.open()  #打开文件(支持with)
Path.unlink()  #删除文件或目录(目录非空触发异常)
Path.chmod()  #更改路径权限, 类似os.chmod()
Path.expanduser()  #展开~返回完整路径对象
Path.mkdir()  #创建目录
Path.rename()  #重命名路径
Path.rglob()  #递归遍历所有子目录的文件
Path.parts  #分割路径 类似os.path.split(), 不过返回元组
path.suffix    #文件后缀
path.stem      #文件名不带后缀
path.name      #带后缀的完整文件名
path.parent    #路径的上级目录
p = Path(r'd:\test\tt\dd')
p.mkdir(exist_ok=True)          # 创建文件目录(前提是tt目录存在, 否则会报错)
p.mkdir((exist_ok=True, parents=True) # 递归创建文件目录
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               # 修改时间
from pathlib import Path
p = Path()
# WindowsPath('.')
p.resolve()                     # 文档显示是absolute path, 这里感觉只能用在获取当前绝对路径上
# WindowsPath('C:/Users/Cabby')
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, 包含所有父目录
# 
for i in p.parents:
    print(i)
# d:\test
# d:\
a.parts                         # 将路径通过分隔符分割成一个元祖
# ('d:\\', 'test', 'tt.txt.bk')
p = Path(r'd:\test')
p = Path(p, 'tt.txt')           # 字符串拼接
p.exists()                      # 判断文件是否存在
p.is_file()                     # 判断是否是文件
p.is_dir()                      # 判断是否是目录
p = Path(r'd:\test')
# WindowsPath('d:/test')
p.iterdir()                     # 相当于os.listdir
p.glob('*')                     # 相当于os.listdir, 但是可以添加匹配条件
p.rglob('*')                    # 相当于os.walk, 也可以添加匹配条件

2、排序

https://docs.python.org/zh-cn/3.7/howto/sorting.html

folders = list(Path(‘XXXX’).iterdir())
folders.sort(key=lambda x: str(x.name),reverse=True)

你可能感兴趣的:(Python)