You are on page 1of 2

11/5/2017 CmolistartodoslosarchivosdeunacarpetausandoPython?

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

1.Mayoreficienciacon os.scandir() python3.5

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()]

2.Conlalibrera pathlib ysuclaseprincipal Path python3.4

Ofrecemayorniveldeconsistenciaentrelosdiferentessistemasoperativos,sinla
necesidaddereferenciardirectamentea os ,evitandotambinmuchasllamadasalsistema.

frompathlibimportPath

defls(ruta=Path.cwd()):
return[arch.nameforarchinPath(ruta).iterdir()ifarch.is_file()]

*graciasakikocorreosoporlareferenciaysuartculodejoyitas.

3.Listartodoslosdirectoriosyarchivoscon listdir() python2.x y


python3.x

fromosimportlistdir

defls(ruta='.'):
returnlistdir(ruta)

Osloarchivos:
fromosimportlistdir
fromos.pathimportisfile,join

defls(ruta='.'):
return[archforarchinlistdir(ruta)ifisfile(join(ruta,arch))]

4.Mayorcontrolcon os.walk() python2.2 y python3.x

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

5.Usandocomodinesen glob() python2.x y python3.x

Parabuscararchivosutilizandocomodines ( * , ? , [seq] y [!seq] )

fromglobimportglob

defls(expr='*.*'):
returnglob(expr)

Estafuncindevuelvelarutacompletadecadaarchivo.

Ejemplo:
print(ls('/etc/*.conf'))

6.Buscararchivosconunaexpresinregular python2.2 y python3.x

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

2 EnPython3.4(creorecordar)seintrodujolalibrera pathlib quenoestmalconocerparatodoestetipo


detrabajos.Unminitutorialaqu:pybonacci.org/2016/05/18/joyitasenlastdlibpathlibkikocorreosoel19
sep.16alas8:58

Graciasporlareferencia@kikocorreoso.Loincorporyagregumsdetallesalarespuesta. Mariano el
20sep.16alas8:35

Completsimarespuesta!:) astrojuanlu el23sep.16alas14:51

https://es.stackoverflow.com/questions/24278/c%C3%B3molistartodoslosarchivosdeunacarpetausandopython 2/2