J'utilise os.listdir
Et cela fonctionne bien, mais la liste contient également des sous-répertoires, ce qui n'est pas ce que je veux: je n'ai besoin que de fichiers.
Quelle fonction dois-je utiliser pour cela?
J'ai aussi regardé os.walk
Et cela semble être ce que je veux, mais je ne suis pas sûr de la façon dont cela fonctionne.
Vous devez filtrer les répertoires. os.listdir()
liste tous les noms d'un chemin donné. Vous pouvez utiliser os.path.isdir()
pour cela:
basepath = '/path/to/directory'
for fname in os.listdir(basepath):
path = os.path.join(basepath, fname)
if os.path.isdir(path):
# skip directories
continue
os.walk()
fait le même travail sous le capot; à moins que vous n'ayez besoin de recurse dans les sous-répertoires, vous n'avez pas besoin d'utiliser os.walk()
ici.
Voici un joli petit one-liner sous la forme d'une liste de compréhension:
[f for f in os.listdir(your_directory) if os.path.isfile(os.path.join(your_directory, f))]
Ceci return
un list
des noms de fichiers dans le your_directory
.
import os
directoryOfChoice = "C:\\" # Replace with a directory of choice!!!
filter(os.path.isfile, os.listdir(directoryOfChoice))
P.S: os.getcwd () renvoie le répertoire en cours.
for fname in os.listdir('.'):
if os.path.isdir(fname):
pass # do your stuff here for directory
else:
pass # do your stuff here for regular file