Foros del Web » Programando para Internet » Python »

Navegar en directorios sin usar el modulo os

Estas en el tema de Navegar en directorios sin usar el modulo os en el foro de Python en Foros del Web. Bien mi pregunta es simple. Tengo un programa cliente-servido r, y nesesito navegar en el directorio del servidor desde el cliente o por lo menos ...
  #1 (permalink)  
Antiguo 20/07/2011, 00:08
 
Fecha de Ingreso: julio-2011
Mensajes: 10
Antigüedad: 13 años, 4 meses
Puntos: 2
Pregunta Navegar en directorios sin usar el modulo os

Bien mi pregunta es simple. Tengo un programa cliente-servidor, y nesesito navegar en el directorio del servidor desde el cliente o por lo menos obtener los nombre de las carpeteas y archivos. Lo intente hacer con el modulo os: os.system('dir'), pero el resultado solo es visible para el servidor y nesesito que se muestre en la consola del cliente.
¿Habrá una forma de hacerlo?
  #2 (permalink)  
Antiguo 20/07/2011, 04:23
Avatar de Neldor  
Fecha de Ingreso: enero-2010
Mensajes: 52
Antigüedad: 14 años, 10 meses
Puntos: 1
Respuesta: Navegar en directorios sin usar el modulo os

No creo que sea trivial el hecho de leer los directorios del servidor (seguramente daría problemas de seguridad), lo único que se me ocurre es que cuando el cliente le pida el árbol de directorios al servidor éste devuelva una variable con todo el árbol y luego desde el cliente leerlo y trabajar con el.
  #3 (permalink)  
Antiguo 20/07/2011, 08:59
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: Navegar en directorios sin usar el modulo os

Te recomendaría usar os.walk para obtener los nombres de los archivos y carpetas

Aquí un ejemplo de uso.
Código Python:
Ver original
  1. import os
  2.  
  3. for path, dirs, files in os.walk("c:/TuCarpeta"):
  4.     print path
  5.     print dirs
  6.     print files
  #4 (permalink)  
Antiguo 22/07/2011, 21:20
 
Fecha de Ingreso: julio-2011
Mensajes: 10
Antigüedad: 13 años, 4 meses
Puntos: 2
Pregunta ¿Como obtengo ahora las propiedades de los archivos?

Hasta ahora estaba usando el modulo glob: glob.glob('directorio*') pero creo que la función walk de os es lo que andaba buscando, ya que glob.glob('directorio*') solo se limitaba a mostrarme los nombre de archivos y carpetas del directorio indicado. Pero os.walk me muestra ademas todos los subdirectorios y archivos contenidos en ellos. Gracias raspetiza.

Ahora bien: Ya tengo los nombres pero... ¿Como podría obtener las propiedades de los archivos. (tamaño, fecha...)?

Quiero agregar que no intento hacer un programa malicioso, no intento joder a nadie. Su uso lo limito a 5 computadoras en un centro de Internet de mi propiedad.
  #5 (permalink)  
Antiguo 22/07/2011, 23:20
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: Navegar en directorios sin usar el modulo os

Bueno el tamaño lo puedes calcular. Pero para fecha y los demás datos se llaman metadatos.

Link relacionado.
  #6 (permalink)  
Antiguo 09/08/2011, 10:51
 
Fecha de Ingreso: julio-2011
Mensajes: 10
Antigüedad: 13 años, 4 meses
Puntos: 2
De acuerdo Obtener las propiedades de archivos y carpetas en python

Visitando la biblioteca, encontré algo interesante con el modulo os que compartiré.
os.stat("ruta") #devuelve una tupla con las estadísticas del archivo o directorio indicado como parámetro.

os.stat("archivo.avi")
>>> posix.stat_result(st_mode=33188, st_ino=1209588, st_dev=2052L, st_nlink=1, st_uid=1000, st_gid=1000, st_size=1702, st_atime=1312908156, st_mtime=1312908155, st_ctime=1312908155)

tamaño = os.stat("archivo.avi").st_size
>>> 1702

modificado = os.stat("archivo.avi").st_mtime
>>> 1312908155

Etiquetas: cliente, directorios, moduloos, servidor
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 11:19.