Professional Documents
Culture Documents
StackOverflowenespaol
registrarse iniciarsesin recorrido ayuda
_
StackOverflowenespaolesunsitio Asescomofunciona:
depreguntasyrespuestaspara
programadoresyprofesionalesdela
informtica.Uneteaellostomamenos
deunminuto:
Cualquiera Cualquierapuede Sevotaafavordelas
Registrarse puedeformular responder mejoresrespuestas,yestas
unapregunta subenalosprimeros
puestos
CmolistartodoslosarchivosdeunacarpetausandoPython?
ConstruyounprogramaquerequiereconocerlosarchivosdelWorkingDirectory (directoriodetrabajo).Porello,hiceelsiguientecdigo,quebuscayconfirmalaexistenciadel
archivodenombre arq_buscado
defencontrar_arq(arq_buscado,camino):
encontrado=False
#lista_arq=ls(camino)#funcionquelistatodoslosarchivosdelaruta
fornome_arqinlista_arq:
ifnome_arq==arq_buscado:
encontrado=True
returnencontrado
CmopuedoasignarlalistadetodoslosarchivosdeunadireccinaunalistaPython?
python archivo
editadael19sep.16alas4:24 formuladael19sep.16alas4:08
AdolfoCorrea
235 8
1respuesta
Existendiferentesformasdeobtenertodoslosarchivosdeundirectorio.Acontinuacinse
muestrandiferentesformas,todasellasdevuelvenunalistaalllamarlasas:
lista_arq=ls(ruta)#noespecificarrutaparatomareldirectorioactual
Devuelveuniteradoraobjetos quemantienenlaspropiedadesdelosarchivos,hacindolo
mseficiente(porejemplo,nonecesitarealizarunallamadaalsistemaadicionalparaversi
unobjetoesunarchivooundirectorio).
fromosimportscandir,getcwd
defls(ruta=getcwd()):
return[arch.nameforarchinscandir(ruta)ifarch.is_file()]
Osisequiereobtenerlarutaabsolutadecadaarchivo:
fromosimportscandir,getcwd
formos.pathimportabspath
defls(ruta=getcwd()):
return[abspath(arch.path)forarchinscandir(ruta)ifarch.is_file()]
Ofrecemayorniveldeconsistenciaentrelosdiferentessistemasoperativos,sinla
necesidaddereferenciardirectamentea os ,evitandotambinmuchasllamadasalsistema.
frompathlibimportPath
defls(ruta=Path.cwd()):
return[arch.nameforarchinPath(ruta).iterdir()ifarch.is_file()]
*graciasakikocorreosoporlareferenciaysuartculodejoyitas.
fromosimportlistdir
defls(ruta='.'):
returnlistdir(ruta)
Osloarchivos:
fromosimportlistdir
fromos.pathimportisfile,join
defls(ruta='.'):
return[archforarchinlistdir(ruta)ifisfile(join(ruta,arch))]
Sepuedenobtenerslolosarchivosdeformamscompacta:
https://es.stackoverflow.com/questions/24278/c%C3%B3molistartodoslosarchivosdeunacarpetausandopython 1/2
11/5/2017 CmolistartodoslosarchivosdeunacarpetausandoPython?StackOverflowenespaol
fromosimportwalk
defls(ruta='.'):
returnnext(walk(ruta))[2]
Osepuedetenermayorcontrolsisequiere,obteniendodoslistas(directoriosyarchivos)
fromosimportwalk
defls(ruta='.'):
dir,subdirs,archivos=next(walk(ruta))
print("Actual:",dir)
print("Subdirectorios:",subdirs)
print("Archivos:",archivos)
returnarchivos
Ysitambinsequiereobtenerlosarchivosdetodoslossubdirectorios,permiteiterarde
lasiguienteforma:
fromosimportwalk,getcwd
defls(ruta=getcwd()):
listaarchivos=[]
for(_,_,archivos)inwalk(ruta):
listaarchivos.extend(archivos)
returnlistaarchivos
fromglobimportglob
defls(expr='*.*'):
returnglob(expr)
Estafuncindevuelvelarutacompletadecadaarchivo.
Ejemplo:
print(ls('/etc/*.conf'))
fromosimportwalk,getcwd,path
importre
defls(regex='',ruta=getcwd()):
pat=re.compile(regex,re.I)
resultado=[]
for(dir,_,archivos)inwalk(ruta):
resultado.extend([path.join(dir,arch)forarchin
filter(pat.search,archivos)])
#break#habilitarsinosebuscaensubdirectorios
returnresultado
Ejemplo:
print(ls(r'\d+\.[^.\d]*$','/'))
editadael13abr.alas13:00 respondidael19sep.16alas4:34
Comunidad Mariano
1 9,843 7 28 57
Graciasporlareferencia@kikocorreoso.Loincorporyagregumsdetallesalarespuesta. Mariano el
20sep.16alas8:35
https://es.stackoverflow.com/questions/24278/c%C3%B3molistartodoslosarchivosdeunacarpetausandopython 2/2