Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: JUSTDOIT! en 27 Enero 2012, 15:53 pm



Título: Duda comando 'chdir' Python
Publicado por: JUSTDOIT! en 27 Enero 2012, 15:53 pm
Hola! Veréis tengo una duda con este script en Python, ahora os explico que es lo que quiero que haga:

Código
  1.  
  2. # Crear carpetas en un directorio
  3.  
  4. import os
  5.  
  6. os.system('cls')
  7. os.system('title' + ' ' + 'Carpetas')
  8.  
  9. nombre = str(raw_input('Introduzca el nombre de la carpeta: '))
  10. destino = str(raw_input('Introduzca el nombre del directorio destino: '))
  11.  
  12. os.system('mkdir' + ' ' + nombre)
  13. os.system('chdir' + ' ' + destino)
  14.  
  15.  

Lo que quiero es que el usuario seleccione un directorio y el nombre de la carpeta y le cree dicha carpeta en el directorio que el ha dicho, pero lo único que hace este script es crear la carpeta en el directorio en el que se encuentra.

Mi pregunta es como hacer para que la carpeta se cree en el directorio que el usuario quiere.

Saludos!


Título: Re: Duda comando 'chdir' Python
Publicado por: Jirp96 en 27 Enero 2012, 16:06 pm
Hola!
Creo que eso sucede porque creas el directorio antes de cambiar al directorio destino.

Aqui:
Código
  1. os.system('mkdir' + ' ' + nombre) #creas el directorio
  2. os.system('chdir' + destino)      #cambias al directorio destino
  3.  


Prueba a poner primero el chdir y luego el mkdir a ver que tal.
Saludos!
pd: Por cierto, lo que haces en ese script(crear y cambiar de directorios, se puede hacer con funciones del modulo os (os.chdir y os.mkdir). Aqui (http://docs.python.org/library/os.html#os-file-dir) explican el modulo os(son los documentos oficiales de python)


Título: Re: Duda comando 'chdir' Python
Publicado por: JUSTDOIT! en 27 Enero 2012, 16:14 pm
Hola!
Creo que eso sucede porque creas el directorio antes de cambiar al directorio destino.

Aqui:
Código
  1. os.system('mkdir' + ' ' + nombre) #creas el directorio
  2. os.system('chdir' + destino)      #cambias al directorio destino
  3.  


Prueba a poner primero el chdir y luego el mkdir a ver que tal.
Saludos!
pd: Por cierto, lo que haces en ese script(crear y cambiar de directorios, se puede hacer con funciones del modulo os (os.chdir y os.mkdir). Aqui (http://docs.python.org/library/os.html#os-file-dir) explican el modulo os(son los documentos oficiales de python)

Gracias pero nada, ya lo había intentado y nop jajaja

Supongo que tendré que cambiar las lineas de código como dices, pero aún así el fallo esta en:

Código
  1. os.system('chdir' + destino)      #cambias al directorio destino

Porque siempre me da error ese comando cuando intento cambiar de directorio por Python.

Saludos!  :)


Título: Re: Duda comando 'chdir' Python
Publicado por: Jirp96 en 27 Enero 2012, 16:38 pm
Hola!
Creo que el problema es que os.system("chdir" + destino) (al menos a mi)no cambia de directorio.
Mira este ejemplo:
Código
  1. >>> import os
  2. >>> os.system("chdir" + "C://Archivos de programa")
  3. 1
  4. >>> os.listdir(os.getcwd())[:2] #con 2 archivos basta
  5. ['DLLs', 'Doc']
  6. >>> os.getcwd()
  7. 'C:\\python26'
  8. >>>
  9. >>>
  10. >>> os.chdir("C://Archivos de programa")
  11. >>> os.listdir(os.getcwd())[:2] #con 2 archivos basta
  12. ['2K Games', 'Adobe']
  13. >>> os.getcwd()
  14. 'C:\\Archivos de programa'
  15. >>>
  16.  

Prueba a cambiar las lineas que te comente antes(os.chdir y os.mkdir)
Saludos!


Título: Re: Duda comando 'chdir' Python
Publicado por: JUSTDOIT! en 28 Enero 2012, 00:12 am

Creo que el problema es que os.system("chdir" + destino) (al menos a mi)no cambia de directorio.


Ahá! Ese es el problema jajaja creía que el comando
Código
  1. os.system('chdir')
se podía utilizar para cambiar directorios, pero ya veo que no  :-\

Gracias por el codigo, lo leeré detenidamente y veré como puedo hacer el mini-programa :)

Gracias por la ayuda ;)


Título: Re: Duda comando 'chdir' Python
Publicado por: Jirp96 en 28 Enero 2012, 00:42 am
Hola!
Sin embargo usandolo desde el cmd cambia de directorios sin problemas =|
Espero que te funcione lo de usar el el chdir y mkdir del modulo os
Saludos!


Título: Re: Duda comando 'chdir' Python
Publicado por: JUSTDOIT! en 28 Enero 2012, 00:52 am
Hola!
Sin embargo usandolo desde el cmd cambia de directorios sin problemas =|
Espero que te funcione lo de usar el el chdir y mkdir del modulo os
Saludos!

Quizás porque ejecuto mal el comando (lo más seguro.. jajaja) de todos modos en la página que me habías pasado venía algo sobre su sintaxis así que le tendré que echar un ojo (que remedio..  :P)

Un saludo!


Título: Re: Duda comando 'chdir' Python
Publicado por: criskapunk en 28 Enero 2012, 16:32 pm
Buenas,

Para que el comando chdir cambie de directorio, le tenés que pasar como parámetro la carpeta a la que querés que cambie, sino, devuelve el nombre del directorio actual. Algo así:

Código
  1. chdir C:\

Anduve probando, y para que te cree la carpeta en una ruta determinada, no hace falta usar el comando chdir. Con mkdir escribiendo la ruta completa hace lo mismo:

Código
  1. import os
  2.  
  3. carpeta = raw_input("Nombre carpeta: ")
  4. directorio = raw_input("Nombre directorio: ")
  5.  
  6. os.system("mkdir" + " " + directorio + carpeta)

Siempre y cuando en la variable directorio se escriba toda la ruta, por ejemplo, C:\WINDOWS\.

Sin embargo, si los nombres de directorios en la ruta contienen varias palabras (Por ejemplo, en C:\Archivos de programa\), tenés que encerrar toda la ruta entre comillas. Así:

Código
  1. os.system("mkdir" + " " + "\"" + directorio + carpeta + "\"")

Notas:
- En vez de poner chdir y mkdir podrías usar cd y mk, hacen lo mismo.
- No es necesario poner la función str() con el raw_input(), ya que esta última convierte todo lo que se le pasa como argumento a string automáticamente.

Un saludo.