4 votes

Changement du répertoire de travail rapide via le script de Python

Est-il possible de changer le répertoire de travail de l'invite de commande Windows via le script de Python ?

par exemple

>> cd
>> c:\windows\system32
>> make_decision_change_dir.py
>> cd
>> c:\windows

J'ai essayé plusieurs choses qui ne fonctionnent pas :

import os
os.chdir(path)

import os, subprocess
subprocess.Popen("chdir /D \"%s\"" %path, shell=True)

import os, subprocess
subprocess.Popen("cd \"%s\"" %path, shell=True)

import os, subprocess
subprocess.Popen("CD=\"%s\"" %path, shell=True)

D'après ce que je comprends et observe, ces opérations modifient le répertoire de travail du processus en cours - qui est le processus Python et non l'invite à partir de laquelle il s'exécute.

Gracias.

UPDATE

Le chemin vers lequel je voudrais changer est dynamique (en fonction du projet sur lequel je travaille, le chemin complet vers un emplacement de construction change), c'est pourquoi je voulais coder une solution en Python plutôt que de bidouiller avec un fichier batch Windows.

UPDATE

J'ai fini par pirater un fichier batch pour faire cela ;( Merci à tous.

0voto

gimel Points 30150

El subprocess.Popen() page doc dit qu'un processus enfant sera créé pour le sous-processus, de sorte que toute modification du répertoire de travail sera locale à ce sous-processus.

Si cwd n'est pas None, le de l'enfant le répertoire courant sera changé en cwd avant son exécution. Notez que ce répertoire n'est pas pris en compte lors de la recherche de l'exécutable, vous ne pouvez donc pas spécifier le chemin du programme par rapport à cwd.

Il en sera de même pour toute modification effectuée explicitement à l'intérieur du sous-processus, à l'instar des commandes qui apparaissent dans la question.

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