Skip to content

Instantly share code, notes, and snippets.

@robsonpiere
Last active September 1, 2021 15:32
Show Gist options
  • Star 8 You must be signed in to star a gist
  • Fork 6 You must be signed in to fork a gist
  • Save robsonpiere/fc256f6e7b7301d2d12343372cde93f9 to your computer and use it in GitHub Desktop.
Save robsonpiere/fc256f6e7b7301d2d12343372cde93f9 to your computer and use it in GitHub Desktop.
Listar pastas / subpastas python Recursivo
import os
pastas = os.listdir()
total = 0
arq = open("lista_de_arquivos.txt", "w",encoding="utf-8")
def listar_pasta(pasta):
tot = 0
subpastas = list()
if os.path.isdir(pasta):
items = os.listdir(pasta)
print("\n\nARQUIVOS NA PASTA '"+ str(pasta).upper() + "' :",end='\n\n')
arq.write("ARQUIVOS NA PASTA '"+ str(pasta).upper() +"': \n")
for item in items:
novo_item = os.path.join(pasta,item)
if os.path.isdir(novo_item):
subpastas.append(novo_item)
continue
print(item)
arq.write(item + "\n")
tot += 1
for subpasta in subpastas:
tot += listar_pasta(subpasta)
arq.write("\n")
return tot
if __name__ == '__main__':
for pasta in pastas:
total += listar_pasta(pasta)
print("Total de arquivos: " + str(total))
arq.write("# Total de arquivos : "+ str(total))
arq.close()
@Skisperd
Copy link

Olá amigo, poderia me ajudar? seu código está bem estruturado, mas me desculpe a ignorância, como eu poderia fazer para passar por um diretorio especifico onde existem varias pastas e dentro dessas pastas encontrar .py?

@robsonpiere
Copy link
Author

Olá amigo, poderia me ajudar? seu código está bem estruturado, mas me desculpe a ignorância, como eu poderia fazer para passar por um diretorio especifico onde existem varias pastas e dentro dessas pastas encontrar .py?

Olá @Skisperd, desculpe a demora, este código já roda de forma recursiva, ou seja quando ele encontra uma pasta, ele também faz a iteração dentro da mesma. Já a extensão do arquivo pode ser verificada com a função endswith
Exemplo:

m.lower().endswith(('.png', '.jpg', '.jpeg'))

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment