Código fonte: Lib/glob.py
O módulo glob
encontra todos os caminhos correspondentes a um padrão especificado de acordo com as regras usadas pela shell do Unix, embora os resultados sejam retornados por ordem inarbitrária. Nenhuma expansão til é feita, mas *
, ?
, e os caracteres expressos com serão correspondidos corretamente. Isto é feito usando as funções
os.scandir()
e fnmatch.fnmatch()
em conjunto, e não invocando realmente uma sub-construção. Note que ao contrário de fnmatch.fnmatch()
,glob
trata nomes de arquivos começando com um ponto (.
) como casos especiais.(Para expansão de variáveis til e shell, use os.path.expanduser()
e os.path.expandvars()
.)
Para uma correspondência literal, envolva os meta-caracteres entre parênteses. Por exemplo, ''
corresponde ao caractere '?'
.
Veja também
O módulo pathlib
oferece objetos de caminho de alto nível.
glob.
glob
(caminho, *, recursivo=Falso)¶
Retornar uma lista possivelmente vazia de nomes de caminhos que combinam com o caminho, que deve conter uma string contendo uma especificação de caminho. caminho pode ser absoluto(como /usr/src/Python-1.5/Makefile
) ou relativo (como ../../Tools/*/*.gif
), e pode conter wildcards estilo shell. Links quebrados são incluídos nos resultados (como na shell). Se os resultados estão ou não ordenados depende do sistema de ficheiros. Se um ficheiro que satisfaz as condições é removido ou adicionado durante a chamada desta função, se um nome de caminho para esse ficheiro a ser incluído não está especificado.
Se recursivo for verdadeiro, o padrão “**
” irá corresponder a quaisquer ficheiros e zero directorias, subdirectorias e links simbólicos para directorias. Se o padrão for seguido por um os.sep
ou os.altsep
então os ficheiros não corresponderão.
Elevanta um evento de auditoria glob.glob
com argumentos pathname
, recursive
.
Nota
Usar o padrão “**
” em grandes árvores de directórios pode consumir uma quantidade desordenada de tempo.
Mudado na versão 3.5: Suporte para globos recursivos usando “**
“.
glob.
iglob
(pathname, *, recursivo=Falso)¶
Retornar um iterador que produza os mesmos valores de glob()
sem realmente armazená-los todos simultaneamente.
>
Elevanta um evento de auditoria glob.glob
com argumentos pathname
, recursive
.
glob.
escape
(pathname)¶
Escapa todos os caracteres especiais ('?'
, '*'
e '.txt'
.
Novo na versão 3.4.
Por exemplo, considere um diretório contendo os seguintes arquivos:1.gif
, 2.txt
, card.gif
e um subdiretório sub
que contém apenas o arquivo 3.txt
. glob()
irá produzir os seguintes resultados. Observe como quaisquer componentes principais do caminho são preservados.
>>> import glob>>> glob.glob('./.*')>>> glob.glob('*.gif')>>> glob.glob('?.gif')>>> glob.glob('**/*.txt', recursive=True)>>> glob.glob('./**/', recursive=True)
Se o diretório contiver arquivos começando com .
eles não serão correspondidos por padrão. Por exemplo, considere um diretório contendo card.gif
e.card.gif
:
>>> import glob>>> glob.glob('*.gif')>>> glob.glob('.c*')
>Veja também
Módulo fnmatch
Expansão do nome do arquivo no estilo Shell (não caminho)