Diretório, também conhecido como pasta, é uma estrutura organizacional de unidade no sistema de arquivos do computador para armazenar e localizar arquivos ou mais pastas. Python agora oferece suporte a uma série de APIs para listar o conteúdo do diretório. Por exemplo, podemos usar os Path.iterdir, os.scandir , os.walk , Path.rglob , ou os.listdir funções. 

Diretório em uso: gfg

Método 1: módulo OS

  •  O método os.listdir() obtém a lista de todos os arquivos e diretórios em um diretório especificado. Por padrão, é o diretório atual.

Sintaxe :

os.listdir (caminho)

Parâmetros :



Caminho do diretório

Tipo de retorno : retorna uma lista de todos os arquivos e diretórios no caminho especificado

Exemplo 1:

import os 
path = "C://Users//Vanshi//Desktop//gfg"
dir_list = os.listdir(path) 
  
print("Files and directories in '", path, "' :") 
print(dir_list) 

Resultado:

  

  Programa 2: Para obter apenas arquivos txt.



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

Resultado:

  •  OS.walk() gera nomes de arquivos em uma árvore de diretórios.  
import os 
path="C://Users//Vanshi//Desktop//gfg"
list = [] 
for (root, dirs, file) in os.walk(path): 
    for f in file: 
        if '.txt' in f: 
            print(f) 

Resultado:

 
 

Sintaxe:

os.scandir (caminho = '.')

Tipo de retorno: retorna um iterador do objeto os.DirEntry.

Exemplo:



import os 
path="C://Users//Vanshi//Desktop//gfg"
  
obj = os.scandir() 
print("Files and Directories in '% s':" % path) 
for entry in obj: 
    if entry.is_dir() or entry.is_file(): 
        print(entry.name) 

Resultado:

Método 2: usando glob

O módulo glob é usado para recuperar nomes de arquivos / caminhos que correspondem a um padrão especificado. 

  • método glob()

Com glob, podemos usar curingas (“*,?, [Intervalos]) para tornar a recuperação de caminho mais simples e conveniente.

import glob 
path="C:\\Users\\Vanshi\\Desktop\\gfg"
print('\nNamed with wildcard *:') 
for files in glob.glob(path + '*'): 
    print(files) 
print('\nNamed with wildcard ?:') 
for files in glob.glob(path + '?.txt'): 
    print(files) 
  
  
print('\nNamed with wildcard ranges:') 
for files in glob.glob(path + '/*[0-9].*'): 
    print(files) 

Resultado:

  •  O método iglob() pode ser usado para imprimir nomes de arquivos recursivamente se o parâmetro recursivo estiver definido como True.

Sintaxe: 

glob.glob (pathname, *, recursive = False)

Exemplo:

import glob 
path="C:\\Users\\Vanshi\\Desktop\\gfg**\\*.txt"
  
  
print("\nUsing glob.iglob()") 
for file in glob.iglob(path, recursive=True): 
    print(file) 

Resultado: