Altera / define o diretório de trabalho dos scripts executados a partir da janela do gerenciador de arquivos

0

Sempre que executo um script clicando nele em uma janela do gerenciador de arquivos, ele é executado com o meu diretório home como diretório de trabalho, e não como o diretório que tem o script dentro dele, onde clico.

Isso é um problema se o código precisar acessar os arquivos no diretório em que o script está localizado.

Existe uma maneira de mudar esse comportamento?

Exemplo:

foo.py está localizado na pasta /home/phil/src/python foo.data também está localizado lá e é lido por foo.py durante a execução.

Se eu abrir um terminal nessa pasta e executar o script, ele será executado com /home/phil/src/python como diretório de trabalho e ele encontrará e abrirá com êxito o foo.data

No entanto, se eu abrir meu gerenciador de arquivos (pcman no meu caso, Lubuntu), navegue até /home/phil/src/python e clique duas vezes em foo.py para executá-lo, ele será executado com /home/phil como diretório de trabalho. Não encontrará foo.data e falhará.

Depois de googlar isso um pouco, parece que isso também acontece com o Nautilus.

    
por MTLPhil 20.10.2011 / 19:53

1 resposta

1

Para scripts do bash, você pode iniciar o script com

cd "$(dirname "$0")"

ou versões mais sofisticadas e seguras disso. Provavelmente em python você pode fazer algo similar (eu não sei python), ou você pode envolver seu script com um script bash.

    
por enzotib 20.10.2011 / 20:17