Foros del Web » Programando para Internet » Python »

No imprime el tipo de archivo en un bucle

Estas en el tema de No imprime el tipo de archivo en un bucle en el foro de Python en Foros del Web. Empece con python hace algunas horas, y estoy haciendo mis pruebas. Quiero listar el contenido de un directorio y mostrar el tipo de archivo que ...
  #1 (permalink)  
Antiguo 29/01/2012, 21:22
 
Fecha de Ingreso: junio-2011
Mensajes: 26
Antigüedad: 13 años, 6 meses
Puntos: 0
Pregunta No imprime el tipo de archivo en un bucle

Empece con python hace algunas horas, y estoy haciendo mis pruebas.

Quiero listar el contenido de un directorio y mostrar el tipo de archivo que es, pero por alguna razon que desconozco no lo hace, mi codigo es este:

Código Python:
Ver original
  1. import os
  2.  
  3. Path = os.listdir('D:\\')
  4. for archivo in Path :
  5.     if os.path.isfile(archivo):
  6.         print archivo + ' Es una archivo'
  7.     if os.path.isdir(archivo):
  8.         print archivo + ' Es una carpeta'
  9.     if os.path.islink(archivo):
  10.         print archivo + ' Es un enlace'

Mi directorio "D:\" tiene 10 carpetas y distintos archivos .jpg, txt y yo esperaba que me listara cada archivo mas su definicion, si es archivo, carpeta o enlace
El codigo solo me funciona con el primer archivo, luego de eso ya no hace caso a las condicionales, alguna solucion?

Saludos
  #2 (permalink)  
Antiguo 29/01/2012, 21:31
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 9 meses
Puntos: 1360
Respuesta: No imprime el tipo de archivo en un bucle

Es por que necesitas la ruta completa del archivo.

Código Python:
Ver original
  1. import os
  2.  
  3. path = "D:\\" #Ruta
  4. files = os.listdir(path)
  5. for filename in files:
  6.     filename = os.path.join(path, filename) #Ruta completa
  7.     if os.path.isfile(filename):
  8.         print "%s es un archivo" % filename
  9.     if os.path.isdir(filename):
  10.         print "%s es una carpeta" % filename
  11.     if os.path.islink(filename):
  12.         print "%s es un enlace" % filename
  #3 (permalink)  
Antiguo 29/01/2012, 21:58
 
Fecha de Ingreso: junio-2011
Mensajes: 26
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: No imprime el tipo de archivo en un bucle

Es cierto, eran las rutas
Me doy cuenta que yo intentaba verificar el contenido de cada archivo solo por su nombre, sin especificar que provenian de la ruta D:\

Muchas gracias
Saludos

Etiquetas: bucle, imprime, tipo
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




La zona horaria es GMT -6. Ahora son las 09:22.