【python】Pathlib使用实例

python 实用代码

Pathlib

官网Doc

from pathlib import Path

path = Path(__file__)

# # 基本属性:
path.parts                                              # 分割路径 类似os.path.split(), 不过返回元组: :('/', 'Users', 'jemes', 'workspace', '***', 'Controller', 'FaceFilter.py')
path.drive                                              # 返回驱动器名称:
path.root                                               # 返回路径的根目录 :/
path.anchor                                             # 自动判断返回drive或root:/

res = path.parents                                      # 返回所有上级目录的列表
for i in res:
    print(i)                                            # 输出如下:
                                                        # /Users/jemes/workspace/***/Controller
                                                        # /Users/jemes/workspace/***
                                                        # /Users/jemes/workspace
                                                        # /Users/jemes
                                                        # /Users
                                                        # /

path                                                    # 文件完整路径:/Users/jemes/workspace/***/Controller/FaceFilter.py
path.suffix                                             # 文件后缀:.py
path.stem                                               # 文件名不带后缀:FaceFilter
path.name                                               # 带后缀的完整文件名:FaceFilter.py
path.parent                                             # 路径的上级目录:/Users/jemes/workspace/***/Controller

res = path.parent.iterdir()                             # 遍历目录的子目录或者文件(必须是目录)
for i in res:
    print(i)                                            # 每个文件的绝对路径


path.resolve()                                          # 返回绝对路径: /Users/jemes/workspace/***/Controller/FaceFilter.py


file = path.open()                                      # 打开文件(支持with) 返回: <class '_io.TextIOWrapper'>
print(file.read())                                      # 读取文件内容

path.unlink()                                           # 删除文件或目录(目录非空触发异常)

# 改变路径:
path.with_name('setup.txt')                             # 更改路径名称, 更改最后一级路径名 : /Users/jemes/workspace/mic-deepfake/Controller/setup.txt
path.with_suffix('.txt')                                # 更改路径后缀  /Users/jemes/workspace/mic-deepfake/Controller/FaceFilter.txt
path.with_suffix('')                                    # 更改路径后缀  /Users/jemes/workspace/mic-deepfake/Controller/FaceFilter

# # 拼接路径
path.parent.joinpath('test.py')                         # 拼接路径: /Users/jemes/workspace/mic-deepfake/Controller/test.py
path.relative_to(path.parent.parent.__str__())          # 计算相对路径: Controller/FaceFilter.py

# 测试路径:
path.match('*.py')                                      # 测试路径是否符合pattern: True
path.is_dir()                                           # 是否是路径
path.is_file()                                          # 是否是文件
path.is_absolute()                                      # 是否是绝对路径
path.is_reserved()                                      # 是否是预留路径
path.exists()                                           # 判断路径是否真实存在

# 其他方法:
path.cwd()                                              # 返回当前目录的路径对象: /Users/jemes/workspace/mic-deepfake/Controller
path.home()                                             # 返回当前用户的home路径对象: /Users/jemes
path.stat()                                             # 返回路径信息, 同os.stat(): os.stat_result(st_mode=33188, st_ino=40639892, st_dev=16777221, st_nlink=1, st_uid=501, st_gid=20, st_size=4030, st_atime=1589444228, st_mtime=1589444223, st_ctime=1589444223)
path.chmod(777)                                         # 更改路径权限, 类似os.chmod()
path.expanduser()                                       # 展开~返回完整路径对象: /Users/jemes/workspace/mic-deepfake/Controller/FaceFilter.py
Path(path.parent.__str__() + '/Test').mkdir()           # 创建目录
path.rename("test.py")                                  # 当前目录下重命名test.py
path.rename("/var/tmp/test.py")                         # 非当前重命名路径
path.rename("../test.py")                               # 相对路径
# path.rglob()                                          # 递归遍历所有子目录的文件
for item in path.parent.rglob('*.py'):                  # 遍历当前文件下所有.py文件
    print(item.name)

猜你喜欢

转载自blog.csdn.net/ERIC_TWELL/article/details/106121005