Изменение / установка рабочего каталога скриптов, выполняемых из окна диспетчера файлов

Всякий раз, когда я запускаю скрипт, нажимая на него в окне диспетчера файлов, он запускается с моим домашним каталогом, поскольку это рабочий каталог, а не каталог, в котором есть скрипт внутри него, где я нажимаю.

Это боль, если код нуждается в доступе к файлам в фактическом каталоге, где находится скрипт.

Есть ли способ изменить это поведение?

Пример:

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.

0
задан 3 March 2012 в 21:04

1 ответ

Для скриптов bash вы можете запустить скрипт с помощью

cd "$(dirname "$0")"

или более сложных и безопасных версий этого. Вероятно, в python вы можете сделать что-то подобное (я не знаю python), или вы можете обернуть скрипт сценарием bash.

1
ответ дан 10 August 2018 в 09:00

Другие вопросы по тегам:

Похожие вопросы: