J'écris un script simple pour changer le répertoire de travail actuel en un autre répertoire. Le script suivant fonctionne correctement jusqu'à la fin du programme, après quoi je suis de retour dans mon répertoire personnel.

#!/usr/bin/python

import os

if __name__ == '__main__':
    os.chdir("/home/name/projects/python")
    os.system("pwd")
    print 'dir changed'

La sortie est:

bash:~$ python chdir.py
/home/name/projects/python
dir changed
bash:~$ pwd
/home/name

Je veux que le changement de répertoire reste, même après la fin du programme. Des idées comment le faire?

Modifier : Ce que je veux vraiment faire, c'est ceci: j'utilise ce répertoire fréquemment et au lieu de faire cd <path> chaque fois que j'ouvre le terminal, j'écris simplement ./progname et cela change le répertoire.

9
Krishh 7 mars 2016 à 14:53

3 réponses

Meilleure réponse

Si vous souhaitez que le changement de répertoire reste, même après la fin du programme. Vous pouvez terminer le script python avec os.system("/bin/bash"), cela vous laissera dans le shell bash à l'intérieur du nouveau répertoire.

#!/usr/bin/python
import os
if __name__ == '__main__':
    os.chdir("/home/name/projects/python")
    os.system("pwd")
    os.system("/bin/bash")

Pour le besoin soulevé dans votre commentaire "J'utilise ce répertoire fréquemment et au lieu de faire cd <path> chaque fois que j'ouvre le terminal, j'écris simplement ./progname et ça change le répertoire"
Je suggérerais d'utiliser l'alias bash qui changera de répertoire:

bash:~$ alias mycd='cd /home/name/projects/python'

Et utilisez cet alias dans le shell bash afin de changer le répertoire:

bash:~$ mycd

Vous pouvez ajouter cet alias à votre .bashrc - ce qui vous permettra d'utiliser cet alias à chaque fois.

12
Yaron 20 déc. 2018 à 12:41
import os
os.system('cd /home/name/projects/python')
-1
Himanshu dua 7 mars 2016 à 11:58

Cette réponse est exactement la même que celle acceptée dans la mesure où elle résout le problème, ce qui n'ajoute aucune valeur, mais s'y prend un peu différemment. Je pense que cette réponse ajoute peut-être de la valeur dans l'explication et la mise en œuvre alternative. Tu peux décider.

D'accord, désolé de crier.

Vous devez simplement modifier votre fichier .bash_profile. C'est vraiment simple. Appuyez sur crée le fichier, puis ouvrez fonctionnellement l'ouvre. Dans votre terminal:

touch ~/.bash_profile; open ~/.bash_profile

Cela ouvre Text Edit. Créez votre raccourci comme ça, je le mets à la fin de mon fichier:

alias cdd="cd ~/frequent/my-directory"

Exécutez ensuite ceci pour mettre à jour votre fichier .bash_profile. (Ou fermez et rouvrez le terminal, comme bon vous semble.)

source ~/.bash_profile

Maintenant, vous venez d'exécuter votre raccourci susmentionné:

Macbook-Spen:~ spen$ cdd

Et cela change votre répertoire, avec beaucoup moins de touches!

Macbook-Spen:my-directory spen$ 

Sources:

0
spen.smith 11 déc. 2018 à 07:05