elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Duda comando 'chdir' Python
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda comando 'chdir' Python  (Leído 8,362 veces)
JUSTDOIT!

Desconectado Desconectado

Mensajes: 41



Ver Perfil
Duda comando 'chdir' Python
« 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!


« Última modificación: 27 Enero 2012, 16:12 pm por cico » En línea

Somos lo que hacemos día a día; de modo que la excelencia no es un acto, sino un hábito.
Jirp96

Desconectado Desconectado

Mensajes: 46


Ver Perfil
Re: Duda comando 'chdir' Python
« Respuesta #1 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 explican el modulo os(son los documentos oficiales de python)


En línea

JUSTDOIT!

Desconectado Desconectado

Mensajes: 41



Ver Perfil
Re: Duda comando 'chdir' Python
« Respuesta #2 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 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!  :)
En línea

Somos lo que hacemos día a día; de modo que la excelencia no es un acto, sino un hábito.
Jirp96

Desconectado Desconectado

Mensajes: 46


Ver Perfil
Re: Duda comando 'chdir' Python
« Respuesta #3 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!
« Última modificación: 27 Enero 2012, 16:45 pm por Jirp96 » En línea

JUSTDOIT!

Desconectado Desconectado

Mensajes: 41



Ver Perfil
Re: Duda comando 'chdir' Python
« Respuesta #4 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 ;)
En línea

Somos lo que hacemos día a día; de modo que la excelencia no es un acto, sino un hábito.
Jirp96

Desconectado Desconectado

Mensajes: 46


Ver Perfil
Re: Duda comando 'chdir' Python
« Respuesta #5 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!
En línea

JUSTDOIT!

Desconectado Desconectado

Mensajes: 41



Ver Perfil
Re: Duda comando 'chdir' Python
« Respuesta #6 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!
En línea

Somos lo que hacemos día a día; de modo que la excelencia no es un acto, sino un hábito.
criskapunk

Desconectado Desconectado

Mensajes: 277



Ver Perfil
Re: Duda comando 'chdir' Python
« Respuesta #7 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.



En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Pequeña duda con un comando batch (NUEVA DUDA RELACIONADA)
Scripting
revenge1252 9 10,297 Último mensaje 13 Febrero 2008, 21:41 pm
por revenge1252
[Python] Ejecutar comando y matarlo al cabo del tiempo.
Python
Distorsion 2 4,167 Último mensaje 10 Enero 2012, 15:42 pm
por Distorsion
Comando similar a Goto en Python?
Python
Caparroni 2 5,030 Último mensaje 16 Abril 2016, 19:29 pm
por PUAROT
chdir() no funciona como pretendo en c
Programación C/C++
juligarc10 1 2,741 Último mensaje 28 Septiembre 2020, 23:51 pm
por K-YreX
¿Porque no me responde al siguiente comando? Bot Telegram #Python
Scripting
timer 4 4,982 Último mensaje 17 Diciembre 2021, 08:27 am
por timer
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines