Comment trier des fichier en fonction de leurs extension ? [Résolu]

Ancor17 59 Messages postés lundi 8 mai 2017Date d'inscription 6 décembre 2017 Dernière intervention - 15 mai 2017 à 07:07 - Dernière réponse :  gudu
- 15 mai 2017 à 20:17
Bonjour, je voudrais pouvoir n'afficher que des fichier texte avec cette instruction:

import os
print(os.listdir(os.path.abspath(os.path.dirname(__file__))))

print(os.listdir(os.getcwd()))

Là, avec ce bout de programme, ça affiche TOUT le contenu qui est présent avec le fichier python que j'execute, y compris les dossier, autres fichiers, etc...
Quelqu'un aurait-il une solution ?
Afficher la suite 

3 réponses

Répondre au sujet
+1
Utile
2
Très simple, il suffit de split le nom du fichier par le .

import os

extension = 'text'
folder = os.path.abspath(os.path.dirname(__file__))
files = []

for f in os.listdir(folder):
    if os.path.isfile(folder + '/' + f) and '.' in f and f.split('.')[-1] == extension:
        files.append(f)

print(sorted(files))
Cette réponse vous a-t-elle aidé ?  
Ancor17 59 Messages postés lundi 8 mai 2017Date d'inscription 6 décembre 2017 Dernière intervention - 15 mai 2017 à 16:56
Merci beaucoup ça marche, même si j'ai mis un petit peu de temps a comprendre le fonctionnement de ces instructions !
Petite question : à quoi sert l'instruction sorted() ?
gudu > Ancor17 59 Messages postés lundi 8 mai 2017Date d'inscription 6 décembre 2017 Dernière intervention - 15 mai 2017 à 20:17
C'était juste pour ordonner la liste à l'affichage, ce n'est pas utile en soi.
Commenter la réponse de gudu