0

我用 Python 编写了一个脚本,它可以正常工作。由于我添加了一个配置文件(我使用了解析器),它在启动时停止了(我在我的 rc.local 文件中有它的绝对路径)。

进一步调查我发现我需要在 python 脚本中指定配置文件的绝对路径,否则它不起作用。

我喜欢它只是在脚本文件所在的文件夹中进行检查。

我是说:

如果我的 script.py 在主文件夹中,我希望它在同一文件夹中检查其配置文件...如果它在 /home/user 中,我希望它检查 /home/user。

我怎样才能做到这一点,记住 rc.local 是由 root 用户使用一些不同于我的普通用户的 ENV 变量运行的?

4

2 回答 2

5

__file__基于变量的路径:

import os.path
scriptpath = os.path.abspath(os.path.dirname(__file__))

configfile = os.path.join(scriptpath, configfilename)
于 2013-01-16T08:43:14.210 回答
1

作为上述 Martijn 答案的替代方案,您可以简单地修改 rc.local 文件以将当前工作目录更改为脚本的目录,然后在没有绝对路径的情况下运行它。这不需要您修改 Python 脚本本身。

换句话说,将您的 rc.local 更改为:

python /home/user/your_script.py

pushd /home/user
python your_script.py
popd
于 2013-01-16T09:48:18.220 回答