os.path在目录中移动

时间:2019-01-24 18:41:46

标签: python

我的代码中具有这种结构。

  • 应用
    • src
      • script.py
  • 数据
    • data.ptk

我需要使用os.path从“ scrip.py”打开文件“ data.ptk”,我能够提取脚本路径。

my_path = os.path.abspath(os.path.dirname(__file__))

但要使结构流畅,我需要返回2个目录,然后进入“数据”目录以打开文件。

最简单的方法是使用split(“ /”)分解字符串my_path,删除最后两个单词并添加“ data” ... 但是我认为这不是正确的方法

script.py需要独立于操作系统,这就是为什么我无法“硬编码” de pkl文件所在的目录的原因

有什么建议吗?谢谢。

1 个答案:

答案 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'