将工作目录设置为笔记本目录
Set Working Directory to Notebook Directory
在 IPython nb 中,是否可以通过编程方式将工作目录设置为笔记本的目录?
例如,以下代码将在常规 .py 文件中运行。
import os
# show working dir
os.chdir(os.path.abspath('/'))
print "initial working directory:\t", os.getcwd()
# get path of script file
scriptPath = os.path.abspath(os.path.dirname(__file__))
# change working dir to dir with script file
os.chdir(scriptPath)
# show working directory
print "final working directory:\t", os.getcwd()
但是,我找不到
的等效项
__file__
ipython nb 文件的变量。 ipynb 文件是否有一些等效的方法?
iPython 笔记本似乎自动将目录切换到与 .ipynb 文件相同的目录。您要更改出该目录然后再更改回来吗?如果是这样,只需将原始目录存储在程序的开头,并随时使用它。
import os
orig_dir = os.getcwd()
os.chdir('/some/other/directory')
#do stuff
os.chdir(orig_dir)
编辑: 似乎有一个特殊变量 _dh
,它是一个列表,其中 _dh[0]
包含目录的名称iPython 内核已启动。我只是刚刚发现这一点,所以我不确定这对 SaveAs 是否有效(我在我的 iPython 版本中找不到执行此操作的方法)。但是,当我执行 os.chdir()
时它并没有改变,所以我怀疑至少列表的第一个元素总是包含笔记本的目录。
在 IPython nb 中,是否可以通过编程方式将工作目录设置为笔记本的目录?
例如,以下代码将在常规 .py 文件中运行。
import os
# show working dir
os.chdir(os.path.abspath('/'))
print "initial working directory:\t", os.getcwd()
# get path of script file
scriptPath = os.path.abspath(os.path.dirname(__file__))
# change working dir to dir with script file
os.chdir(scriptPath)
# show working directory
print "final working directory:\t", os.getcwd()
但是,我找不到
的等效项__file__
ipython nb 文件的变量。 ipynb 文件是否有一些等效的方法?
iPython 笔记本似乎自动将目录切换到与 .ipynb 文件相同的目录。您要更改出该目录然后再更改回来吗?如果是这样,只需将原始目录存储在程序的开头,并随时使用它。
import os
orig_dir = os.getcwd()
os.chdir('/some/other/directory')
#do stuff
os.chdir(orig_dir)
编辑: 似乎有一个特殊变量 _dh
,它是一个列表,其中 _dh[0]
包含目录的名称iPython 内核已启动。我只是刚刚发现这一点,所以我不确定这对 SaveAs 是否有效(我在我的 iPython 版本中找不到执行此操作的方法)。但是,当我执行 os.chdir()
时它并没有改变,所以我怀疑至少列表的第一个元素总是包含笔记本的目录。