python课外笔记 -> 获取文件目录

基础知识

我们需要了解一些基础的知识
例如↓

__file__ -> 当前文件位置
if:当前文件处在 sys.path 下  # 也就是存储python环境变量的地方
__file__ -> 相对路径
else:绝对路径   
字符串前加r -> 按照字符串本意进行使用 
文件路径后返回的\.. -> 表示上一级文件
list.insert(位置,参数) -> 在列表指定位置前插入参数 

os模块中:
os.path.abspath(path)  # 返回path规范化的绝对路径
os.path.normpath(path)  # 将path路径输出规范化
# 也就是说,所有\\//都统一为\,\..直接返回上一级文件的路径
os.path.join  # 将多个路径组合后返回,第一个绝对路径之前的参数将被舍弃
# 将多个路径整合为一个路径
os.path.dirname(path)  # 返回path的上一级路径
os.path.split(path)  # 将path路径分割成目录和文件名,返回元组
os.pardir  # 获取当前目录的父目录字符串名,也就是'..'

sys模块中:
sys.path  # 存储python环境变量,返回值是列表

获取文件上一级目录方法

方法一

path = os.path.dirname(os.path.dirname(__file__))
# 一个dirname就代表当前文件所在目录,两个就代表是当前文件所在目录的上一级,以此类推
sys.path.insert(path)  # 将获取的路径存入环境变量

方法二

path = os.path.normpath(
	os.path.join(
    os.path.abspath(__file__),
        os.pardir,
    	os.pardir
    ))
# os.path.abspath(__file__)返回的是当前文件的绝对路径
# os.pardir返回的是'..',而\..代表上一级文件
# 经过os.join将其组合起来后,每个之间都加上了\号,也就满足了\..代表上一级文件这个条件
# 再经过os.path.normpath将路径规范化,\..直接返回上一级路径
# 一个os.pardir代表当前文件所在目录,两个os.pardir代表当前文件所在目录的上级目录
sys.path.insert(path)  # 将获取的路径存入环境变量

方法三

path = os.path.normpath(
	os.path.join(
    os.path.split(__file__)[0],
        os.pardir,
    ))
# os.path.split(__file__)返回的是当前文件路径的目录和文件名组成的列表,在其后加上[0]代表取其目录
# os.pardir返回的是'..',而\..代表上一级文件
# 经过os.join将其组合起来后,每个之间都加上了\号,也就满足了\..代表上一级文件这个条件
# 再经过os.path.normpath将路径规范化,\..直接返回上一级路径
# 一个os.pardir代表当前路径的上级目录
sys.path.insert(path)  # 将获取的路径存入环境变量

方法四

path = os.path.normpath(
	os.path.join(
    os.path.dirname(__file__),
        os.pardir,
    ))
# os.path.dirname(__file__)返回的是当前文件所在目录
# os.pardir返回的是'..',而\..代表上一级文件
# 经过os.join将其组合起来后,每个之间都加上了\号,也就满足了\..代表上一级文件这个条件
# 再经过os.path.normpath将路径规范化,\..直接返回上一级路径
# 一个os.pardir代表当前路径的上级目录
sys.path.insert(path)  # 将获取的路径存入环境变量

总结

方法一不推荐使用,反复使用代码导致冗余
方法二三四基本都一致,在join内的代码有些许不一致,可按自己的习惯使用
posted @ 2021-07-16 21:35  麋鹿的麋  阅读(144)  评论(0)    收藏  举报