2011-03-30 6 views
3

Je dois exécuter une commande utiliser le sous-processus python. Par défaut, la commande est exécutée comme si elle fonctionnait sur le répertoire où se trouve le fichier de script Python. Par défaut, la commande est exécutée. tel quecommande exécuter le répertoire

subprocess.Popen(shlex.split("ls -l")) 

listera le fichier dans le répertoire du fichier script où est. Mais je veux que cette commande s'exécute dans un autre répertoire, disons, B. comment puis-je le faire.

i essayer, mais faild:

env['PWD'] = "/data/a" 
f = tempfile.TemporaryFile('w+b') 
p = subprocess.Popen(shlex.split(cmd),stdout= f,stderr=f,env=env) 

Répondre

0

ls -l liste tous les éléments par défaut du répertoire courant. Vous pouvez dire à la commande ls -l quel répertoire lister en utilisant ls -l /your-path

1

Vous pouvez utiliser os.chdir ou si vous utilisez le paramètre CWD à Popen.

0

salut u n'essayez de changer la commande unix

ls -l 

à quelque chose comme

ls -l /usr/share; 
+0

non, en effet je suis d'utiliser l'exécution de la commande ls, c'est la commande git, qui ne peut pas mettre un paramètre de chemin. – mike

+0

pouvez-vous dire quelle commande c'est .. ou utiliser; combiner deux commandes pour par exemple: cd/var; ls – Anuj

Questions connexes