在测试过程中,通常需要读取文件或写入文件,当要读写的文件和当前文件不在同一目录时,用相对路径经常会报找不到文件的错误。所以为了解决这个问题,我们通常在读写文件时,使用绝对路径。
但是文件路径写为绝对路径,可以直接写死吗?显然不能,如果写死了,这个代码就只能在当前的机器上运行了。我们今天就来解决这个问题。通过当前文件路径来获取要读写文件相对于当前文件的相对路径。

导入依赖的包

import os

获取文件路径

#获取当前文件的绝对路径
os.path.realpath(__file__)
#获取当前文件所在的目录的路径
os.path.dirname(os.path.realpath(__file__))
#获取当前文件所在目录的上一级目录的路径,os.path.dirname()可以多次使用,直到到达要读写的文件所在的上一级目录为止
dir_path = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))

要读取config目录下的data.yaml文件
path = os.path.join(dir_path, "config", "data.yaml")

这时path即为data.yaml的路径

涉及的方法

#获取当前文件的绝对路径
os.path.realpath(__file__)

#获取当前路径的父级目录
os.path.dirname()

#要读取的文件的绝对路径为:path/dir/文件名称
 os.path.join(path,"dir","文件名称")
Logo

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。

更多推荐