Não pode ser difícil, mas estou tendo um bloqueio mental.
187
import os
os.listdir("path") # returns list
Mão única:
import os
os.listdir("/home/username/www/")
glob.glob("/home/username/www/*")
O glob.glob
método acima não listará arquivos ocultos.
Desde que eu originalmente respondi a essa pergunta anos atrás, o pathlib foi adicionado ao Python. Minha maneira preferida de listar um diretório agora geralmente envolve o iterdir
método em Path
objetos:
from pathlib import Path
print(*Path("/home/username/www/").iterdir(), sep="\n")
.XYZ
arquivos em um contexto de sistema de arquivos Unix), quando usado comglob.glob("/home/username/www/.*")
?['c:\\users']
glob.glob(r'c:\users\*')
(glob, na verdade, não lista os diretórios, mas expande asteriscos e outros que realizam uma tarefa semelhante).os.walk
pode ser usado se você precisar de recursão:fonte
glob.glob
ouos.listdir
vai fazer isso.fonte
import glob
ENTERglob.glob(r'c:\users')
ENTER apenas parece retornar['c:\\users']
. Por que é que? Eu gostaria de usar o glob.glob porque, como outros usuários apontaram, ele supostamente retorna o conteúdo de um diretório e também ignora arquivos ocultos. Isso é importante.glob
:glob.glob(r'c:\users\*')
O
os
módulo lida com todas essas coisas.fonte
No Python 3.4+, você pode usar o novo
pathlib
pacote:Path.iterdir()
retorna um iterador, que pode ser facilmente transformado emlist
:fonte
Desde o Python 3.5, você pode usar
os.scandir
.A diferença é que ele retorna entradas de arquivos e não nomes. Em alguns sistemas operacionais, como o Windows, isso significa que você não precisa
os.path.isdir/file
saber se é um arquivo ou não, e isso economiza o tempo da CPU, porque issostat
já foi feito ao verificar o diretório no Windows:exemplo para listar um diretório e imprimir arquivos maiores que
max_value
bytes:(leia uma resposta baseada no desempenho extensa meu aqui )
fonte
O código abaixo lista os diretórios e os arquivos no diretório O outro é os.walk
fonte