É bem possível que já tenhamos nos deparado com tantos casos em nossa vida em que desejamos saber quantos e quais arquivos estão presentes em um diretório (pasta). Ou às vezes temos que procurar um arquivo e sabemos seu nome, mas não sabemos em que pasta ele está presente. Nesse caso, a única opção que nos resta é procurar o arquivo no diretório de destino.
Agora, pareceria tão fácil para muitos de nós pensar; só temos que ir ao diretório e procurar lá. Esta é uma opção possível, mas só funcionará quando tivermos apenas um número menor de arquivos presentes naquele diretório. Só então poderemos visitar esse diretório manualmente e procurar os arquivos ali presentes. Mas, e no caso de um grande número de arquivos, digamos apenas milhares de arquivos presentes no diretório de destino. Nesse caso, esta opção não funcionará porque demorará muito (até muitos dias) para pesquisar se um arquivo específico está presente no diretório de destino onde estão presentes milhares de arquivos. Parece o que deveríamos fazer se precisarmos encontrar um arquivo com seu nome em um diretório com milhares de arquivos.
Podemos pesquisar o nome através do explorador de arquivos, mas se fizermos isso também vai demorar muito, não como na opção anterior, mas sim, muito tempo. Isso ocorre porque o explorador de arquivos verificará todos os arquivos presentes no diretório e teremos que esperar muito até que a verificação completa do disco seja concluída.
Mas e se dissermos que já fornecemos os nomes de todos os arquivos presentes no diretório ou caminho de destino. Assim, será muito fácil verificarmos se o arquivo especificado está presente no caminho de destino e também mostra onde precisamos obter os nomes de todos os arquivos presentes no diretório de destino.
Se recebermos uma lista de nomes de todos os arquivos presentes em um diretório em formato de texto, basta digitar o nome desse arquivo específico na barra de pesquisa. E, então, dificilmente demorará um segundo para descobrir se o arquivo está presente na lista de nomes ou não. Assim, podemos entender o quanto é importante ter um método onde possamos imprimir a lista de nomes de todos os arquivos presentes em um diretório ou caminho.
Python nos fornece métodos onde podemos imprimir a lista de nomes, e um desses métodos é a função listdir() do módulo 'os'. Vamos aprender este método listdir() neste tutorial e usá-lo em um programa Python para imprimir uma lista de nomes de todos os arquivos presentes no caminho especificado.
botão tkinter
Método os.listdir() em Python
A função listdir() é uma função fornecida pelo módulo os, e usando esta função, podemos imprimir uma lista de nomes de todos os arquivos presentes no caminho especificado. O método listdir() também pode ser usado se quisermos imprimir a lista de arquivos presentes no diretório de trabalho atual (onde o programa está presente). Podemos usar o método listdir() sempre que for necessário obter os nomes de todos os arquivos presentes em um diretório especificado.
Sintaxe para a função os.listdir():
A seguir está a sintaxe para usar a função listdir() do módulo os:
>> os.listdir(pathSpecified)
Parâmetros:
Como podemos ver na sintaxe fornecida acima, fornecemos apenas um argumento dentro do método listdir(). A função listdir() usa o seguinte parâmetro de caminho:
Tipo de retorno:
O tipo de retorno para a função listdir() é ‘list’, pois retorna uma lista de nomes de todos os arquivos presentes no diretório especificado.
Método os.listdir(): Implementação:
Para entender o funcionamento e a implementação da função listdir(), iremos usá-la em um programa de exemplo e imprimir a lista de nomes de arquivos dele. Dividimos a parte de implementação da função listdir() nas duas partes a seguir:
- Imprimindo nomes de arquivos do diretório de trabalho atual
- Imprimindo nomes de arquivos do caminho especificado
Usaremos um programa de exemplo para cada categoria e obteremos os nomes dos arquivos em cada método.
Método 1: Imprimir nomes de arquivos do diretório de trabalho atual:
Neste método, imprimiremos a lista de nomes de arquivos do diretório de trabalho atual usando outra função do módulo os, ou seja, a função getcwd(). Observe o programa de exemplo a seguir para entender a implementação deste método:
Exemplo 1:
Veja o seguinte programa Python onde usamos o método os.listdir() com argumento path:
# Import os module import os # Use getcwd() function pathSpecified = os.getcwd() # Using listdir() function listOfFileNames = os.listdir(pathSpecified) # Print the name of all files in the current working directory print('Following is the list of names of all the files present in the current working directory: ') print(listOfFileNames)
Saída:
Following is the list of names of all the files present in the current working directory: ['.ipynb_checkpoints', '1510981730952-33afef2b-eb41-4592-8d3f-bd3e19932d36_.pdf', '1510981730952-33afef2b-eb41-4592-8d3f-bd3e19932d36__19.webp', '1527589430558.webp', '1605467180870.webp', '1605467180879.webp', '160591-fruit-template-16x9.pptx', '1613034967066.webp', '1613034967083.webp', '1613035079325.webp', '1613035270313.webp', '1616159417742.webp', '1616159417758.webp', ???., Windows11InstallationAssistant.exe', 'WindowsPCHealthCheckSetup.msi', 'Word frequency Python.edited.docx', 'wrong.webp', 'X-ray image.webp', 'XML-data.xml', 'yemen500.webp', 'zambia-500.webp', 'zimbabwe-500.webp', 'ZoomInstaller (1).exe', 'ZoomInstaller.exe', '__pycache__', '~$EOC CERTIFICATE.pptx']
Como podemos ver, os nomes de todos os arquivos presentes em nosso diretório de trabalho atual são impressos na saída do programa.
Explicação:
Após importar o módulo os no programa, usamos a função getcwd() para obter o caminho do diretório de trabalho atual. Inicializamos uma variável com o nome 'pathSpecified' e armazenamos o caminho do diretório de trabalho atual nesta variável. Depois disso, usamos a função listdir() em outra variável inicializada, ou seja, listOfFileNames, para armazenar o nome de todos os arquivos nesta variável. Fornecemos a variável inicializada para o caminho de trabalho atual como um argumento na função listdir() e, por último, imprimimos a lista de todos os nomes na saída usando uma instrução print.
Se não quisermos usar nenhuma outra função em nosso programa, também podemos obter todos os nomes de arquivos do diretório atual em que o programa está presente. Basta sair da função listdir() ao invés de fornecer o caminho de qualquer diretório como argumento, e depois disso, o programa, ao ser executado, dará como resultado na saída a lista de todos os nomes presentes no diretório atual. Observe o programa de exemplo a seguir para entender a implementação deste método:
Exemplo 2:
etiquetas HTML
Veja o seguinte programa Python onde usamos o método os.listdir() sem nenhum argumento:
# Import os module import os # Using listdir() function listOfFileNames = os.listdir() # Print the name of all files in the current working directory print('Following is the list of names of all the files present in the current working directory: ') print(listOfFileNames)
Saída:
Following is the list of names of all the files present in the current working directory: ['.ipynb_checkpoints', '1510981730952-33afef2b-eb41-4592-8d3f-bd3e19932d36_.pdf', '1510981730952-33afef2b-eb41-4592-8d3f-bd3e19932d36__19.webp', '1527589430558.webp', '1605467180870.webp', '1605467180879.webp', '160591-fruit-template-16x9.pptx', '1613034967066.webp', '1613034967083.webp', '1613035079325.webp', '1613035270313.webp', '1616159417742.webp', '1616159417758.webp', ???., Windows11InstallationAssistant.exe', 'WindowsPCHealthCheckSetup.msi', 'Word frequency Python.edited.docx', 'wrong.webp', 'X-ray image.webp', 'XML-data.xml', 'yemen500.webp', 'zambia-500.webp', 'zimbabwe-500.webp', 'ZoomInstaller (1).exe', 'ZoomInstaller.exe', '__pycache__', '~$EOC CERTIFICATE.pptx']
Como podemos ver, uma lista de nomes de todos os arquivos presentes no arquivo atual onde o Python está instalado é impressa na saída após a execução do programa.
erro de atributo python
Explicação:
Neste programa, omitimos o parâmetro path e ainda obtemos a lista de nomes de todos os arquivos presentes no diretório de trabalho atual. Preferiremos usar este método se quisermos obter a lista de nomes de todos os arquivos do diretório de trabalho atual. Porque neste método não precisamos usar nenhum argumento ou definir nenhuma variável de caminho e, portanto, ele salva qualquer linha extra de código em nosso programa e economiza nosso tempo.
Método 2: Imprimir nomes de arquivos do caminho especificado:
Neste método, podemos obter a lista de nomes de todos os arquivos presentes em um diretório especificado, fornecendo o caminho especificado do diretório dentro da função listdir(). Podemos obter o caminho do diretório na opção de propriedades do arquivo e então podemos usar o mesmo arquivo no programa. Observe o programa de exemplo a seguir para entender a implementação deste método:
Exemplo 3:
Veja o seguinte programa Python onde usamos o método os.listdir() com argumento path:
# Import os module import os # Define the specified path pathSpecified = ' C:UsersManishDownloads' # Using listdir() function listOfFileNames = os.listdir(pathSpecified) # Print the name of all files in directory print('Following is the list of names of all the files present in the specified directory: ') print(listOfFileNames)
Saída:
Following is the list of names of all the files present in the specified directory: ['.ipynb_checkpoints', '1510981730952-33afef2b-eb41-4592-8d3f-bd3e19932d36_.pdf', '1510981730952-33afef2b-eb41-4592-8d3f-bd3e19932d36__19.webp', '1527589430558.webp', '1605467180870.webp', '1605467180879.webp', '160591-fruit-template-16x9.pptx', '1613034967066.webp', '1613034967083.webp', '1613035079325.webp', '1613035270313.webp', '1616159417742.webp', '1616159417758.webp', ........, Windows11InstallationAssistant.exe', 'WindowsPCHealthCheckSetup.msi', 'Word frequency Python.edited.docx', 'wrong.webp', 'X-ray image.webp', 'XML-data.xml', 'yemen500.webp', 'zambia-500.webp', 'zimbabwe-500.webp', 'ZoomInstaller (1).exe', 'ZoomInstaller.exe', '__pycache__', '~$EOC CERTIFICATE.pptx']
Como podemos ver, os nomes de todos os arquivos presentes no diretório especificado são impressos na saída do programa.
Explicação:
Após importar o módulo os no programa, primeiro definimos o caminho do diretório de onde queremos imprimir a lista de todos os nomes de arquivos inicializando uma variável de caminho. Depois disso, usamos a variável path inicializada dentro do método listdir() para usar o caminho como argumento na função. Por último, usamos outra variável inicializada (listOfFileNames) dentro da instrução print para imprimir o resultado na saída.
Conclusão
Aprendemos sobre o método listdir() do módulo os neste tutorial e entendemos a importância desta função. Aprendemos sobre a sintaxe desta função e, em seguida, aprendemos os métodos para usá-la. Por último, utilizamos o programa Python com a função listdir() para entender a implementação de cada método.