相关疑难解决方法(0)

python:将脚本工作目录更改为脚本自己的目录

我每分钟从crontab运行一个python shell:

* * * * * /home/udi/foo/bar.py
Run Code Online (Sandbox Code Playgroud)

/home/udi/foo有一些必要的子目录,比如/home/udi/foo/log/home/udi/foo/config,/home/udi/foo/bar.py指的是.

问题是crontab从不同的工作目录运行脚本,因此尝试打开./log/bar.log失败.

有没有一种很好的方法告诉脚本将工作目录更改为脚本自己的目录?我想要一个适用于任何脚本位置的解决方案,而不是明确地告诉脚本它在哪里.

编辑:

os.chdir(os.path.dirname(sys.argv[0]))
Run Code Online (Sandbox Code Playgroud)

是最紧凑的优雅解决方案.感谢您的回答和解释!

python working-directory

153
推荐指数
4
解决办法
15万
查看次数

如何在 Spyder (Anaconda) 中找到当前 .py 文件的路径?

设置

我在我的计算机上运行一个脚本,位于目录Users/path/to/my/script.py.

在脚本中,我使用脚本的路径,例如,

sub_path = 'Users/path/to/my/'
os.chdir(sub_path + 'other_script/') 
Run Code Online (Sandbox Code Playgroud)

如您所见,我sub_path在代码中“手动”进行了定义。


问题

我不想sub_path手动定义,我宁愿让 Python 为我做。

我正在寻找类似于我用来获取当前工作目录的代码的东西:os.getcwd(),但是然后是获取当前文件目录的代码。

我主要找到类似于这个的答案,它说,

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

但在 Spyder & Anaconda 设置中,这会生成NameError: name '__file__' is not defined.

我能做什么?

python spyder anaconda

5
推荐指数
1
解决办法
7213
查看次数

标签 统计

python ×2

anaconda ×1

spyder ×1

working-directory ×1