[Python-es] cambiar de directorio

Alexis Roda alexis.roda.villalonga en gmail.com
Sab Ene 26 20:23:40 CET 2008


En/na David Abreu Rodriguez ha escrit:
> El problema con ambos es que me devuelve al directorio desde el que 
> llamé a python.
> 
> Me parece que voy a tener que escribirlo en shell script.

Si no me equivoco el directorio actual es parte del entorno de cada 
proceso. Cuando el proceso termina su entorno se pierde.

Me parece que con shell scripts tendrás el mismo problema. Una function 
de bash funcionaria, pero no un script (sin algo de magia).

La solución que se me ocurre es que el proceso no termine y así retener 
el entorno. El ejemplo siguiente hace algo parecido a lo que pides:

~$ python
Python 2.4.4 (#2, Apr  5 2007, 20:11:18)
[GCC 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
 >>> import os
 >>> os.chdir('/tmp')
 >>> os.getcwd()
'/tmp'
 >>> os.execl('/bin/bash', '-i')
tmp$ exit
logout
~$

fijate que a salir del shell vuelves al shell desde el que has ejecutado 
python. Si es un problema lo podrías solventar con un exec:

~$ exec python
Python 2.4.4 (#2, Apr  5 2007, 20:11:18)
...
 >>> os.execl('/bin/bash', '-i')
tmp$ exit
logout





Saludos


Más información sobre la lista de distribución Python-es