Neste tutorial, veremos como implementar um programa Python curto que se encarregará de procurar por arquivos que contenham um certo nome, dentro do diretório que passamos para ele (se não passarmos um diretório, ele pesquisará no diretório atual). Veremos que é um código muito simples de fazer e entender.
ObservaçãoO exemplo que vou colocar neste tutorial vou executar no Python 3.X.
Deixo primeiro o código completo e abaixo será explicado parte por parte:
import sys, os search = diretório "solvetic" = os.getcwd () total = 0 if (len (sys.argv)> 1): if (not os.path.isdir (sys.argv [1])): print (sys.argv [1], "não reconhecido como diretório") sys.exit (1) diretório = sys.argv [1] para raiz, dir, arquivos em os.walk (diretório): para arquivo em arquivos: if ( pesquisar em arquivo.lower ()): imprimir (root + "\" + arquivo) total + = 1 imprimir ("No total há", total, "arquivos com", pesquisa)Agora vamos começar a explicação do código, se você já sabe algo sobre Python, certamente já entendeu na maior parte.
Para realizar este programa, vamos usar o Módulo OS para interagir com o sistema operacional, e o sys para controlar a entrada do argumento e possível saída sem brusquidão. Eles são módulos que já temos no Python, então não precisamos instalar mais nada.
import sys, osA seguir vamos definir uma variável chamada search com a palavra que vamos pesquisar (poderíamos recebê-la como um parâmetro, mas neste caso, para o exemplo será solvética), outro diretório chamado que conterá o caminho de onde vamos começar (por padrão, o diretório atual de onde executamos o programa). E a última variável que vemos no total é manter o controle dos arquivos que estamos encontrando.
search = diretório "solvético" = os.getcwd () total = 0Agora vamos verificar se recebemos algum parâmetro e em caso afirmativo verificamos se nos deram um diretório, se for verdade, salvamos o diretório na variável "diretório", se não, essa variável permanece a mesma, ou seja, com o diretório atual.
if (len (sys.argv)> 1): if (not os.path.isdir (sys.argv [1])): print (sys.argv [1], "não reconhecido como diretório") sys.exit ( 1) diretório = sys.argv [1]O próximo passo é um loop, a função os.walk (diretório) irá ler os nomes dos arquivos recursivamente, ou seja, irá percorrer os arquivos e diretórios do diretório que passamos para ele. Então a única coisa que nos interessa neste exemplo é mostrar os arquivos que contenham a palavra solvética, então iremos percorrer os arquivos e verificar se eles possuem a palavra procurada, para também encontrar os arquivos que contenham a palavra com alguma letra maiúscula usamos a função inferior, que tudo o que ela faz é deixar a string inteira em minúsculas. Como estamos interessados em ver o caminho completo do arquivo, concatenamos a variável root com o arquivo, já que root retorna o diretório que lemos.
para root, dir, arquivos em os.walk (diretório): para arquivo em arquivos: if (pesquise em file.lower ()): print (root + "\" + arquivo) total + = 1Antes de encerrar o programa, ele irá pintar na tela uma linha com a quantidade de arquivos encontrados com o nome de solvetic.
imprimir ("No total existem", total, "arquivos com", pesquisa)Agora vou colocar alguns screenshots da execução do programa, depois a execução sem parâmetro, ou seja, vai fazer a busca a partir do diretório atual:
O seguinte para pesquisar no disco C no Windows:
E, finalmente, uma captura quando algo que não é um diretório é passado como um parâmetro:
E o tutorial acabou, se você tiver interesse em investigar mais a fundo o módulo, aqui está um link para a documentação oficial, que está em inglês.
Gostou e ajudou este tutorial?Você pode recompensar o autor pressionando este botão para dar a ele um ponto positivo