8 votes

Comment alterner les répertoires à l'aide d'un sous-processus ?

Je veux changer le répertoire courant en utilisant un sous-processus.

Par exemple :

import os, sys, subprocess

os.environ['a'] = '/home'
os.environ['b'] = '/'

subprocess.call('cd $a', shell=True)
subprocess.call('ls', shell=True)

subprocess.call('cd $b', shell=True)
subprocess.call('ls', shell=True)

Je pense que cela devrait fonctionner comme une ligne de commande unix

$ export a='/home'
$ export b='/'

$ cd $a
$ ls
$ cd $b
$ ls

Mais ça n'arrive pas..

Que dois-je faire pour changer le dir actuel ?

Merci.

13voto

sorin Points 23747

Pour changer de répertoire, il suffit d'utiliser os.chdir() à la place.

Vous pouvez également exécuter des commandes dans des directions spécifiques en exécutant les commandes suivantes subprocess.Popen(...) - il comporte un paramètre facultatif cwd=None . Utilisez-le simplement pour spécifier le répertoire de travail.

Vous pouvez également jeter un œil à un petit module que j'ai écrit et qui complète certaines fonctionnalités manquantes de la bibliothèque standard de Python. Il est probable que ce module, en particulier https://github.com/ssbarnea/tendo/blob/master/tendo/tee.py

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X