Python Glob() Função Para Coincidir com o Caminho de Diretório, Nomes de Arquivo com Exemplos

glob é um termo geral utilizado para definir técnicas de correspondência de padrões especificados de acordo com as regras relativas ao shell do Unix. Linux e sistemas e shells Unix também suportam glob e também fornecem função glob() em bibliotecas de sistemas. Neste tutorial, vamos olhar glob() uso de funções na linguagem de programação Python.

para usar glob() e funções relacionadas precisamos importar o glob módulo. Tenha em mente que glob módulo contém glob() e outras funções relacionadas.

import glob
Import Glob Módulo

String Exata de Busca

Vamos começar com um exemplo simples. Vamos ver como combinar o texto exato ou nome de arquivo com um caminho absoluto. Neste exemplo, listaremos o arquivo /home/ismail/poftut.c . Podemos ver o exemplo abaixo que a função retorna uma lista que contém fósforos.

glob.glob("/home/ismail/poftut.c")
String Exata de Pesquisa

Curingas

Curinga é importante glob operador para glob operações. Caracteres especiais ou asterisco são usados para corresponder a zero ou mais caracteres. Caracteres especiais especificaram que pode haver caracteres zero ou múltiplos onde o carácter não é importante. Neste exmaple vamos combinar arquivos que têm .txt extensão.

glob.glob("/home/ismail/*.txt")
Curingas

Como podemos ver que há um monte de .txt arquivos aqueles retornar em Python lista.

Wildcards com diretórios multi-níveis

podemos usar wildcards, a fim de especificar diretórios multi-níveis. Se quisermos procurar em directórios de um nível para baixo por determinado glob, iremos usar /*/ . Neste exemplo, nós procuramos por.txt arquivos em um nível para baixo diretórios em/home/ismail . Isso também é chamado de “glob glob glob” porque nós usamos o nome do módulo glob e a função glob que é fornecida pelo módulo glob.

glob.glob("/home/ismail/*/*.txt")
caracteres curinga com vários níveis de Diretórios

Único Caractere Curinga

Há um ponto de interrogação que é usada para corresponder único caractere. Isto pode ser útil se não conhecermos um único carácter para um dado nome. Neste exemplo, vamos combinar arquivos com arquivos file?.txt file onde estes irão corresponder

  • file.txt
  • file1.txt
  • file5.txt
glob.glob("/home/ismail/file?.txt")

múltiplos caracteres

Glob também suporta caracteres alfabéticos e numéricos. Podemos usar é usado para terminar o intervalo de caracteres. Podemos colocar o que quisermos entre parêntesis rectos. Neste exemplo, vamos combinar arquivos e nomes de pastas que iniciam um de e,m,p .

glob.glob("/home/ismail/*.tx?")
Intervalos de Caracteres

Número de Faixas

Em alguns casos, podemos querer corresponder ao número de faixa. Podemos usar - dash para especificar números de início e fim. Neste exemplo, vamos combinar 0 a 9 com 0-9. Neste exemplo, vamos combinar nomes de arquivos e pastas que contêm números de 0 a 9.

glob.glob("/home/ismail/**")
Número de Faixas

Alfabeto Faixas

podemos também definir Alfabeto intervalos semelhante ao número de intervalos. usaremos a-z para caracteres minúsculos, onde a-Z para caracteres maiúsculos. E se precisarmos de corresponder caracteres minúsculos e maiúsculos numa única declaração? Podemos usar o A-Z para combinar letras maiúsculas e minúsculas. Neste exemplo, vamos combinar arquivos e nomes de pasta aqueles começa com cartas entre a e c

glob.glob("/home/ismail/*")
Alfabeto Faixas

Retornar Gerador com iglob() Mehtod

em Geral glob método é usado para listar os arquivos para os padrões especificados. Mas em alguns casos listá-los e armazená-los pode ser um trabalho tedioso. Portanto, iglob() função pode ser usada para criar um iterador que pode ser usado para iterar os nomes de arquivo com o next() função.

import glob
gen = glob.iglob("*.txt")
for item in gen:
print(item)
Retorno Gerador com iglob() Mehtod

Ignorar os Caracteres Específicos com escape() Método

escape() função pode ser usada para ignorar ou não lista de alguns arquivos os nomes especifica caracteres. Por exemplo, se queremos ignorar os arquivos com esses nomes contém - ou _ ou # podemos usar a função escape (), fornecendo esses caracteres.

chars_skip = "-_#"
for char_skip in chars_skip:
esc_set = "*" + glob.escape(char_skip)+ "*" + ".txt"
for txt in (glob.glob(esc_set)):
print(txt)

Deixe uma resposta

O seu endereço de email não será publicado.