windows - Få hver fil i et katalog, Python

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har en mappe i Windows 7, som indeholder flere .txt filer. Hvordan ville man gå om at få hver fil i mappen som en liste?

Bedste reference


Du kan bruge os.listdir(".") til at liste indholdet af den aktuelle mappe ('.'): [7]


for name in os.listdir("."):
    if name.endswith(".txt"):
        print(name)


Hvis du vil have hele listen som en Python-liste, skal du bruge en listeforståelse :


a = [name for name in os.listdir(".") if name.endswith(".txt")]

Andre referencer 1


import os
import glob

os.chdir('c:/mydir')
files = glob.glob('*.txt')

Andre referencer 2


import fnmatch
import os

return [file for file in os.listdir('.') if fnmatch.fnmatch(file, '*.txt')]

Andre referencer 3


Hvis du bare har brug for den nuværende mappe, skal du bruge os.listdir.


>>> os.listdir('.') # get the files/directories
>>> [os.path.abspath(x) for x in os.listdir('.')] # gets the absolute paths
>>> [x for x in os.listdir('.') if os.path.isfile(x)] # only files
>>> [x for x in os.listdir('.') if x.endswith('.txt')] # files ending in .txt only


Du kan også bruge os.walk, hvis du skal rekursivt få indholdet i en mappe. Se python-dokumentationen for os.walk. [8]