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
有没有人知道如何在不改变当前工作目录的情况下实现这一目标?
答案 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'))