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.globmé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 iterdirmétodo en Pathobjetos:
from pathlib import Path
print(*Path("/home/username/www/").iterdir(), sep="\n")
.XYZarchivos 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.walkse puede usar si necesita recurrencia:fuente
glob.globoos.listdirlo haremos.fuente
import globENTERglob.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
osmódulo maneja todas esas cosas.fuente
En Python 3.4+, puede usar el nuevo
pathlibpaquete: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/filesaber si es un archivo o no, y eso ahorra tiempo de CPU porquestatya está hecho al escanear el directorio en Windows:ejemplo para listar un directorio e imprimir archivos más grandes que
max_valuebytes:(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