Não pode ser difícil, mas estou tendo um bloqueio mental.
Não pode ser difícil, mas estou tendo um bloqueio mental.
Respostas:
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")
['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:
import os
start_path = '.' # current directory
for path,dirs,files in os.walk(start_path):
for filename in files:
print os.path.join(path,filename)
glob.glob
ou os.listdir
vai fazer isso.
import glob
ENTER glob.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.
os.listdir(path)
Retorne uma lista contendo os nomes das entradas no diretório fornecido pelo caminho. A lista está em ordem arbitrária. Não inclui as entradas especiais '.' e '..' mesmo se eles estiverem presentes no diretório
Disponibilidade: Unix, Windows.
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 isso stat
já foi feito ao verificar o diretório no Windows:
exemplo para listar um diretório e imprimir arquivos maiores que max_value
bytes:
for dentry in os.scandir("/path/to/dir"):
if dentry.stat().st_size > max_value:
print("{} is biiiig".format(dentry.name))
(leia uma resposta baseada no desempenho extensa meu aqui )
O código abaixo lista os diretórios e os arquivos no diretório O outro é os.walk
def print_directory_contents(sPath):
import os
for sChild in os.listdir(sPath):
sChildPath = os.path.join(sPath,sChild)
if os.path.isdir(sChildPath):
print_directory_contents(sChildPath)
else:
print(sChildPath)
.XYZ
arquivos em um contexto de sistema de arquivos Unix), quando usado comglob.glob("/home/username/www/.*")
?