2011-04-12 30 views

Respuesta

13

Puede utilizar os.listdir(".") para listar el contenido del directorio actual (""):

for name in os.listdir("."): 
    if name.endswith(".txt"): 
     print(name) 

Si desea toda la lista como una lista de Python, utilice una lista comprensión:

a = [name for name in os.listdir(".") if name.endswith(".txt")] 
6
import os 
import glob 

os.chdir('c:/mydir') 
files = glob.glob('*.txt') 
+5

¿Por qué os.chdir? Considere 'glob.glob (r'c: \ mydir \ *. Txt ')' –

+0

@John Machin: es absolutamente cierto, esa es otra forma de hacerlo. –

+1

También es una forma de hacerlo sin el efecto secundario innecesario y no solicitado de cambiar [uno de] el director de trabajo actual [y | ies]. –

2
import fnmatch 
import os 

return [file for file in os.listdir('.') if fnmatch.fnmatch(file, '*.txt')] 
+0

no se devuelve solo utilizado en una función? – kurumi

0

Si sólo necesita el directorio actual , usa os.listdir.

>>> os.listdir('.') # get the files/directories 
>>> [os.path.abspath(x) for x in os.listdir('.')] # gets the absolute paths 
>>> [x for x in os.listdir('.') if os.path.isfile(x)] # only files 
>>> [x for x in os.listdir('.') if x.endswith('.txt')] # files ending in .txt only 

También puede utilizar os.walk si usted necesita para obtener de forma recursiva el contenido de un directorio. Consulte la documentación de python para os.walk.

Cuestiones relacionadas