elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
29 Mayo 2012, 07:02  


Tema destacado: Grupo de Facebook de elhacker.net

+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting (Moderadores: Novlucker, Leo Gutiérrez., EleKtro H@cker)
| | |-+  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 615 veces)
cico

Desconectado Desconectado

Mensajes: 27


.Rinascere ~


Ver Perfil
Duda comando 'chdir' Python
« en: 27 Enero 2012, 15:53 »

Hola! Veréis tengo una duda con este script en Python, ahora os explico que es lo que quiero que haga:

Código
 
# Crear carpetas en un directorio
 
import os
 
os.system('cls')
os.system('title' + ' ' + 'Carpetas')
 
nombre = str(raw_input('Introduzca el nombre de la carpeta: '))
destino = str(raw_input('Introduzca el nombre del directorio destino: '))
 
os.system('mkdir' + ' ' + nombre)
os.system('chdir' + ' ' + destino)
 
 

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 por cico » En línea

Reinassance..
Jirp96

Desconectado Desconectado

Mensajes: 39


Ver Perfil
Re: Duda comando 'chdir' Python
« Respuesta #1 en: 27 Enero 2012, 16:06 »

Hola!
Creo que eso sucede porque creas el directorio antes de cambiar al directorio destino.

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


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
cico

Desconectado Desconectado

Mensajes: 27


.Rinascere ~


Ver Perfil
Re: Duda comando 'chdir' Python
« Respuesta #2 en: 27 Enero 2012, 16:14 »

Hola!
Creo que eso sucede porque creas el directorio antes de cambiar al directorio destino.

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


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
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

Reinassance..
Jirp96

Desconectado Desconectado

Mensajes: 39


Ver Perfil
Re: Duda comando 'chdir' Python
« Respuesta #3 en: 27 Enero 2012, 16:38 »

Hola!
Creo que el problema es que os.system("chdir" + destino) (al menos a mi)no cambia de directorio.
Mira este ejemplo:
Código
>>> import os
>>> os.system("chdir" + "C://Archivos de programa")
1
>>> os.listdir(os.getcwd())[:2] #con 2 archivos basta
['DLLs', 'Doc']
>>> os.getcwd()
'C:\\python26'
>>>
>>>
>>> os.chdir("C://Archivos de programa")
>>> os.listdir(os.getcwd())[:2] #con 2 archivos basta
['2K Games', 'Adobe']
>>> os.getcwd()
'C:\\Archivos de programa'
>>>
 

Prueba a cambiar las lineas que te comente antes(os.chdir y os.mkdir)
Saludos!
« Última modificación: 27 Enero 2012, 16:45 por Jirp96 » En línea
cico

Desconectado Desconectado

Mensajes: 27


.Rinascere ~


Ver Perfil
Re: Duda comando 'chdir' Python
« Respuesta #4 en: 28 Enero 2012, 00:12 »


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
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

Reinassance..
Jirp96

Desconectado Desconectado

Mensajes: 39


Ver Perfil
Re: Duda comando 'chdir' Python
« Respuesta #5 en: 28 Enero 2012, 00:42 »

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
cico

Desconectado Desconectado

Mensajes: 27


.Rinascere ~


Ver Perfil
Re: Duda comando 'chdir' Python
« Respuesta #6 en: 28 Enero 2012, 00:52 »

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

Reinassance..
criskapunk

Desconectado Desconectado

Mensajes: 255



Ver Perfil
Re: Duda comando 'chdir' Python
« Respuesta #7 en: 28 Enero 2012, 16:32 »

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
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
import os
 
carpeta = raw_input("Nombre carpeta: ")
directorio = raw_input("Nombre directorio: ")
 
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
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 2,503 Último mensaje 13 Febrero 2008, 21:41
por revenge1252
duda con el comando ipconfig/flushdns...y con comando en DOS...
Redes
orerof 5 5,128 Último mensaje 4 Octubre 2009, 06:09
por survil
Duda Comando ping
Hacking Wireless
Fluflu 7 2,099 Último mensaje 2 Marzo 2010, 09:27
por |FluiD|
Duda BATCH comando set
Scripting
khaos91 2 902 Último mensaje 8 Marzo 2010, 22:28
por khaos91
[Python] Ejecutar comando y matarlo al cabo del tiempo.
Scripting
Distorsion 2 564 Último mensaje 10 Enero 2012, 15:42
por Distorsion
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines