Iniciando localizador de python

2

Desejo inserir um nome de subpasta no terminal e fazer com que um script seja lançado no localizador. Este é o meu código:

import sys
import os

fullname='/home/ash/caffe/examples/imagenet/train_rest/'+str(sys.argv[1])

os.system(gnome-open fullname)

No entanto, parece que o 'gnome-open' só aceita um caminho no formato tradicional / path / to /. Existe alguma maneira de contornar isso? Obrigado antecipadamente!

    
por Ash 06.03.2015 / 04:55

1 resposta

9

Você não deve usar os.system() . é obsoleto , muito antiquado e desencorajado a usar mais .

Em vez disso, use subprocess.Popen() ou subprocess.call() :

import sys
import subprocess

subprocess.Popen(["gnome-open", '/home/ash/caffe/examples/imagenet/train_rest/'+sys.argv[1]])
# or:
subprocess.call(['gnome-open', '/home/ash/caffe/examples/imagenet/train_rest/'+sys.argv[1]])

Além disso:

Não é necessário usar str(sys.argv[1] , apenas sys.argv[1] .

Nota

Provavelmente não é necessário dizer, mas se o seu argumento (-diretório) incluir nomes com espaços, use aspas, por exemplo,

python <script> '/path/with/name with spaces'
    
por Jacob Vlijm 06.03.2015 / 07:37