更改/设置从文件管理器窗口执行的脚本的工作目录

更改/设置从文件管理器窗口执行的脚本的工作目录

每当我在文件管理器窗口中单击脚本来执行它时,它都会以我的主目录作为其工作目录运行,而不是以我单击的包含脚本的目录运行。

如果代码需要访问脚本所在实际目录中的文件,这会很麻烦。

有没有什么办法可以改变这种行为?

例子:

foo.py位于文件夹中/home/phil/src/python foo.data也位于那里并foo.py在执行期间被读取。

如果我在该文件夹中打开终端并运行该脚本,它将以其/home/phil/src/python工作目录运行,并成功找到并打开foo.data

但是,如果我打开文件管理器(我这里是 pcman,Lubuntu),导航到/home/phil/src/python并双击foo.py运行它,它将以其/home/phil工作目录运行。它找不到它foo.data,并且会失败。

经过一番谷歌搜索后,似乎 Nautilus 也发生了这种情况。

答案1

对于 bash 脚本,你可以使用以下命令启动脚本

cd "$(dirname "$0")"

或者更复杂更安全的版本。可能在 Python 中你可以做类似的事情(我不懂 Python),或者你可以用 Bash 脚本包装你的脚本。

相关内容