J'essaie d'implémenter ma propre version de la commande 'cd' qui présente à l'utilisateur une liste de répertoires codés en dur à choisir, et l'utilisateur doit entrer un nombre correspondant à une entrée dans la liste. Le programme, nommé my_cd.py
pour l'instant, devrait alors effectivement 'cd' l'utilisateur dans le répertoire choisi. Exemple de comment cela devrait fonctionner:Comment changer mon répertoire actuel d'un script python?
/some/directory
$ my_cd.py
1) ~
2) /bin/
3) /usr
Enter menu selection, or q to quit: 2
/bin
$
Actuellement, je suis en train de « cd » en utilisant os.chdir('dir')
. Cependant, cela ne fonctionne pas, probablement parce que my_cd.py
est lancé dans son propre processus fils. J'ai essayé envelopper l'appel à my_cd.py
dans un script bash nommé source my_cd.sh
:
#! /bin/bash
function my_cd() {
/path/to/my_cd.py
}
/some/directory
$ . my_cd.sh
$ my_cd
... shows list of dirs, but doesn't 'cd' in the interactive shell
Toutes les idées sur la façon dont je peux obtenir ce travail? Est-il possible de changer le répertoire courant de mon shell interactif à partir d'un script python?
Ceci est la bonne réponse! Il n'y a aucun moyen de le faire. –