2009-03-18 13 views

Respuesta

20

Si usted lo está haciendo sobre la base de la extensión de archivo, se puede hacer algo como esto:

import os 
directory = "C:/" 
extension = ".tga" 
list_of_files = [file for file in os.listdir(directory) if file.lower().endswith(extension)] 

Obviamente se puede omitir el inferior() si se puede garantee el caso de la archivos. También está el excelente módulo path.py (http://pypi.python.org/pypi/path.py).

Si no conoce la extensión de archivo, puede usar algo como PIL (http://www.pythonware.com/products/pil/) para detectar el tipo de archivo decodificando el archivo.

+0

Probé esto y otros, pero de alguna manera no obtuve nada. Intenté con diferentes formatos, en este directorio: "C:/Documents and Settings/yunus/My Documents/My Received Files /" ¿Hay algún problema con esto? Si –

+0

: importación OS de archivo en os.listdir ("C:/Documents and Settings/Yunus/Mis documentos/Mis archivos recibidos /"): archivo de impresión lo hace imprimir cualquier cosa? – Jotham

+0

Lo siento, el sistema de comentarios parece haber llenado mis líneas nuevas, espero que puedas descifrar eso =) – Jotham

1

>>> import os 
>>> for file in [tga for tga in os.listdir(directory) if tga.endswith(".tga")]: 
>>>  print file 
14
import glob, os 
for filename in glob.glob(os.path.join(yourPath, "*.tga")) 
    print(filename) 
2

el siguiente ejemplo se utiliza filter, que ofrece una solución elegante como se muestra a continuación:

import os 
files = filter(lambda x: x.endswith('.tga'), os.listdir(DIR)) 
0

Mi Targa/Vista tiene a menudo .vst y .tga, a veces otra extensión:

import os 
from glob import glob 
import PIL 

filenames = [] 
for filename in glob(os.path.join(dirname, "*.*")): 
    try: 
     img = PIL.Image(filename) 
     if img.format == "TGA": 
      filenames.append(filename) 
    except IOError: // from PIL if not recognised 
     pass 
Cuestiones relacionadas