更好文件系统内置库Path

from pathlib import Path

需要区别window和unix使用不同的类

# 当前文件绝对路径
path = Path(__file__).resolve()
# 父级 可以连续使用
path.parent
# 文件名称
path.name
# 后缀
path.suffix
# 去 后缀文件名
path.stem
# 遍历文件夹
path.parent.iterdir()
# 组合文件路径 joinpath(self, *args)
path.joinpath('文件或路径')
# 是否存在
path.exists()
# 文件或者文件夹
path.is_dir()
path.id_file()

问题

假如有场景:将某个文件夹加入到环境变量中。

test.py

from pathlib import Path

import sys

p = Path(__file__).resolve()
sys.path.append(p.parent)

此时,你加入环境变量应该是不生效的。如果你使用type你会看到

<class 'pathlib.PosixPath'>

它其实是一个对象不是一个字符串。所以你可以这样使用。

sys.path.append(str(p.parent))

基础os.path

正如,开头说的那样。Path是一个高效的文件基础模块。如果,通过os.path模块获取一个文件的文件名或者文件后缀。那么你应该会感受到多么痛的领悟。下面是给尝试

import os
path = os.path.abspath(__file__)
name, suffix = os.path.basename(path).split('.')

如果你想获取上级目录

os.path.dirname(path)
# 或者你可以使用是不是更方便
path.parent