Memorizzare path assoluti

di il
1 risposte

Memorizzare path assoluti

Salve,
dovrei memorizzare in una lista il percorso assoluto dei files contenuti nelle directory.
Esempio, partendo da "/home/utente/partenza" devo memorizzare tutte le directory e tutti i files in essi contenuti.
Esempio:
/home/utente/partenza/1/a.txt
/home/utente/partenza/1/b.txt
/home/utente/partenza/1/c.txt
/home/utente/partenza/2/d.txt
/home/utente/partenza/2/e.txt
/home/utente/partenza/2/f.txt
/home/utente/partenza/3/g.txt
ecc....

Finore sono riuscito ad ottenere i path assoluti delle sottocartelle

import os
a=os.listdir('/home/utente/partenza')
b=['/home/utente/partenza/{}'.format(a[i]) for i in range(0,len(a))]

for i in range(0,len(b)):
     print(b[i])
ottenendo:

/home/utente/partenza/1
/home/utente/partenza/2
/home/utente/partenza/3
ecc....
Grazie.

1 Risposte

  • Re: Memorizzare path assoluti

    Sbagli approccio. Prova così:
    import glob
    a=glob.glob('/home/utente/partenza/**', recursive=True)
    
    for i in a:
         print(i)
    
    Attenzione che se la directory da esplorare è grande, questo metodo è assai pesante.
    Altrimenti puoi usare pathlib e filtrare i risultati man mano che arrivano. Per entrare nelle sottodirectory devi creare una funzione ricorsiva che viene chiamata ogni volta che trovi una directory.
Devi accedere o registrarti per scrivere nel forum
1 risposte