我的代码中具有这种结构。
我需要使用os.path从“ scrip.py”打开文件“ data.ptk”,我能够提取脚本路径。
my_path = os.path.abspath(os.path.dirname(__file__))
但要使结构流畅,我需要返回2个目录,然后进入“数据”目录以打开文件。
最简单的方法是使用split(“ /”)分解字符串my_path,删除最后两个单词并添加“ data” ... 但是我认为这不是正确的方法
script.py需要独立于操作系统,这就是为什么我无法“硬编码” de pkl文件所在的目录的原因
有什么建议吗?谢谢。
答案 0 :(得分:1)
要详细说明我的评论,可以在https://docs.python.org/3/library/pathlib.html?highlight=pathlib#module-pathlib上查看pathlib
的文档。它是python3的一部分(不确定python2)。我认为以下方法会起作用:
from pathlib import Path
scriptPath = Path(__file__).absolute() # the absolute() is not strictly necessary
srcPath = scriptPath.parent
appPath = srcPath.parent
commonDirectory = appPath.parent # this could have been shortened with scriptPath.parent.parent.parent
dataPath = commonDirectory / 'data'
dtkFile = dataPath / 'data.ptk'