Maison >développement back-end >Tutoriel Python >Comment puis-je répertorier efficacement uniquement les fichiers d'un répertoire à l'aide de Python ?

Comment puis-je répertorier efficacement uniquement les fichiers d'un répertoire à l'aide de Python ?

DDD
DDDoriginal
2025-01-01 12:31:11874parcourir

How Can I Efficiently List Only Files in a Directory Using Python?

Obtenir des fichiers à partir d'un répertoire

Récupérer la liste de fichiers d'un répertoire est une tâche courante dans la programmation Python. Une façon de procéder consiste à utiliser os.listdir(), qui renvoie tous les éléments d'un répertoire, y compris les fichiers et les répertoires.

Approche 1 : Utilisation de os.path.isfile()

Pour lister uniquement les fichiers, utilisez os.path.isfile() :

from os import listdir
from os.path import isfile, join
mypath = 'path/to/directory'
onlyfiles = [f for f in listdir(mypath) if isfile(join(mypath, f))]

Approche 2 : Utilisation os.walk()

os.walk() parcourt un répertoire et ses sous-répertoires, renvoyant un tuple pour chaque répertoire qu'il visite. Ce tuple contient trois listes : une pour les fichiers, une pour les répertoires et une pour le répertoire actuel lui-même.

from os import walk
mypath = 'path/to/directory'
filenames = next(walk(mypath), (None, None, []))[2]  # [] if no files

Cette approche fournit une représentation plus complète de la structure des répertoires. Pour lister les fichiers uniquement dans le répertoire courant, rompez la boucle après la première itération :

from os import walk

f = []
for (dirpath, dirnames, filenames) in walk(mypath):
    f.extend(filenames)
    break

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn