在Python中导航目录而不更改当前目录?

时间:2015-08-12 04:30:05

标签: python directory

C:/Root
  |__WinPython
  |     |_WinPy
  |           |_Python(Working Directory)
  |                 |_sample.py
  |__SDK
      |_SparkHome    

考虑一下上面提到的工作目录。

os.getcwd()
   C:/Root/WinPython/WinPy/Python

现在我需要从当前目录中的sample.py文件设置Spark Home,它应该像

Spark_Home="Root/SDK/SparkHome"    

我使用命令

实现了这个目的
import os
spark_home = os.chdir("../../../SDK/SparkHome")

这为我成功设置了火花回家,但也改变了当前的工作目录。

os.getcwd()
  C:/Root/SDK/SparkHome

有没有人知道如何在不改变当前工作目录的情况下实现这一目标?

1 个答案:

答案 0 :(得分:2)

如果您确定不想更改spark的当前工作目录,则只需正确设置spark_home变量即可。然后直接使用os.path.join(),您不必在此之前执行os.chdir()。然后使用os.path.abspath()获取绝对路径。

os.path.abspath也可以处理相对路径,因此您可以在其中使用'..''.'等。

示例 -

import os.path
spark_home = os.path.abspath(os.path.join(os.getcwd(),'../../../SDK/SparkHome'))