在Python/Spyder中设置工作目录,以便它可以重现

Hei*_*erg 13 python spyder reproducible-research

来自R,使用setwd更改目录是一个很大的禁止再现性,因为其他人没有与我相同的目录结构.因此,建议使用脚本位置的相对路径.

IDE稍微复杂一点,因为它们设置了自己的工作目录.在Rstudio中,我可以轻松解决Rstudio项目的这个问题,将项目目录设置为我的脚本文件夹.

使用Python和Spyder,似乎没有任何解决方案.Spyder没有像Rstudio这样的功能.在进行交互式分析时(因为不可用),将目录设置为脚本的位置不起作用__file__.

怎么办,Python/Spyder中的工作目录是可重现的?

小智 7

在此期间,您可以使用 os.chdir

import os
os.chdir('C:\Users\me\Documents')
Run Code Online (Sandbox Code Playgroud)


小智 7

要自动执行此操作,请将其放在脚本的开头:

from os import chdir, getcwd
wd=getcwd()
chdir(wd)
Run Code Online (Sandbox Code Playgroud)

  • 这似乎不再起作用了。`wd Out[4]: 'C:\\Users\\Admin'` 尽管我运行代码的 .py 文件位于不同的目录中。一般来说,如果您使用 F5 运行脚本,则会正确分配目录,请参阅 https://github.com/spyder-ide/spyder/issues/3154,请参阅@Hack-R 的答案。 (2认同)

Hac*_*k-R 4

根据此 GitHub 票证,他们似乎确实认为这是 Spyder 中的一项功能,但截至 5 月中旬仍在等待实施:

我们可以在“运行”对话框中添加一个选项,以自动将工作目录设置为正在运行的脚本的目录。

但是,必须由其他人来实施它。我们现在正忙着其他事情,抱歉。

https://github.com/spyder-ide/spyder/issues/3154

@ccordoba12 ccordoba12 于 5 月 14 日将此添加到愿望清单里程碑