Gå til innhold

liste alle filer rekusivt med sti til fila


Anbefalte innlegg

Heysann, er det noen som kan vise meg hvordan jeg kan gjøre dette?

Viss jeg fks står i «~/MyDownloads/music», så ønsker jeg å få alle filnavna i ei liste, men med full sti slik at lista blir seende ut som noe sånt:

files = ['/MyDownloads/music/sang.mp3','/MyDownloads/music/sang2.mp3', '/MyDownloads/music/artist1/sang1.mp3', '/MyDownloads/music/artist1/sang2.wav']

og så videre..

Lenke til kommentar
Videoannonse
Annonse
Heysann, er det noen som kan vise meg hvordan jeg kan gjøre dette?

Viss jeg fks står i «~/MyDownloads/music», så ønsker jeg å få alle filnavna i ei liste, men med full sti slik at lista blir seende ut som noe sånt:

files = ['/MyDownloads/music/sang.mp3','/MyDownloads/music/sang2.mp3', '/MyDownloads/music/artist1/sang1.mp3', '/MyDownloads/music/artist1/sang2.wav']

og så videre..

5232059[/snapback]

 

Flere måter å gjøre dette på. Her er én:

 

import fnmatch, os

def files_in_dir(filepath = '.', ext = '*.*'):
   filepaths = []
   for path, dirs, files in os.walk(filepath):
       for f in [os.path.abspath(os.path.join(path, filename)) 
                   for filename in files if fnmatch.fnmatch(filename, ext)]:
           filepaths.append(f)
   return filepaths

mp3_files = files_in_dir(ext = '*.mp3')

 

Stikkordet er uansett os.walk()

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...