Bom,tenho que reconhecer que sou iniciante em python.
Estava desenvolvendo um script que procuraria em todo o disco raiz ( C:\,por exemplo) por arquivos de uma determinada extensão.A minah iodéia é: Fazer uma espécie de procedimento recursivo,em que o programa iria buscando em cada pasta,e se houvessem pastas dentro destas pastas, buscar novamente nelas,sembre armazenado em uma lista a localização dos arquivos com a referisda extensão.Encontrei um problema: Ao pentar acessar pastas protegidas,como o 'C:\System Volume information' no Windows, o programa acusa erro.Como posso lidar com isso (lembrem-se,sou iniciante :rolleyes: )
O código segue abaixo.
# -*- coding: cp1252 -*-
import os
import string
import dircache
def aloca_arq(c_dir,frmt,L):
if os.path.isdir(c_dir):
x=os.listdir(c_dir)
for i in range(len(x)):
if os.path.isfile(c_dir+x[i]) and x[i].endswith(frmt) :
L.append(c_dir+x[i])
if os.path.isdir(c_dir+x[i]):
procura_(c_dir+x[i],frmt,L)
elif not os.path.isdir(c_dir) and c_dir.endswith(frmt):
L.append(c_dir)
print L,c_dir
def procura_(pdir,frmt,L):
ndir=os.listdir(pdir)
for i in range(len(ndir)):
aloca_arq(pdir+ndir[i],frmt,L)
def main():
f=raw_input("Digite o formato(XXX):")
frmt='.'+string.upper(f)
procura_('\\',frmt,[])
if __name__ == '__main__':
main()
Pergunta
Dr. Mahala
Bom,tenho que reconhecer que sou iniciante em python.
Estava desenvolvendo um script que procuraria em todo o disco raiz ( C:\,por exemplo) por arquivos de uma determinada extensão.A minah iodéia é: Fazer uma espécie de procedimento recursivo,em que o programa iria buscando em cada pasta,e se houvessem pastas dentro destas pastas, buscar novamente nelas,sembre armazenado em uma lista a localização dos arquivos com a referisda extensão.Encontrei um problema: Ao pentar acessar pastas protegidas,como o 'C:\System Volume information' no Windows, o programa acusa erro.Como posso lidar com isso (lembrem-se,sou iniciante :rolleyes: )
O código segue abaixo.
Grato à todos...Um abraço!
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.