No puede ser difícil, pero estoy teniendo un bloqueo mental.
188
import os
os.listdir("path") # returns list
De una sola mano:
import os
os.listdir("/home/username/www/")
glob.glob("/home/username/www/*")
El glob.glob
método anterior no enumerará los archivos ocultos.
Desde que originalmente respondí esta pregunta hace años, pathlib se ha agregado a Python. Mi forma preferida de listar un directorio ahora generalmente implica el iterdir
método en Path
objetos:
from pathlib import Path
print(*Path("/home/username/www/").iterdir(), sep="\n")
.XYZ
archivos en un contexto de sistema de archivos Unix), cuando se usa conglob.glob("/home/username/www/.*")
?['c:\\users']
glob.glob(r'c:\users\*')
(globalmente, en realidad no enumera los directorios, pero expande los asteriscos y demás, lo que lleva a cabo una tarea similar).os.walk
se puede usar si necesita recurrencia:fuente
glob.glob
oos.listdir
lo haremos.fuente
import glob
ENTERglob.glob(r'c:\users')
ENTER solo parece regresar['c:\\users']
. ¿Porqué es eso? Me gustaría usar glob.glob porque, como han señalado otros usuarios, supuestamente devuelve el contenido de un directorio e ignora también los archivos ocultos. Esto es importante.glob
:glob.glob(r'c:\users\*')
El
os
módulo maneja todas esas cosas.fuente
En Python 3.4+, puede usar el nuevo
pathlib
paquete:Path.iterdir()
devuelve un iterador, que puede convertirse fácilmente en unlist
:fuente
Desde Python 3.5, puedes usar
os.scandir
.La diferencia es que devuelve entradas de archivo , no nombres. En algunos sistemas operativos como Windows, significa que no tiene que
os.path.isdir/file
saber si es un archivo o no, y eso ahorra tiempo de CPU porquestat
ya está hecho al escanear el directorio en Windows:ejemplo para listar un directorio e imprimir archivos más grandes que
max_value
bytes:(lea una extensa respuesta mía basada en el rendimiento aquí )
fuente
El siguiente código enumerará los directorios y los archivos dentro del directorio. El otro es os.walk
fuente