Menu

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

Ancor17 65 Messages postés lundi 8 mai 2017Date d'inscription 1 avril 2018 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

Meilleure réponse
1
Merci
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))

Merci gudu 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

CCM a aidé 22561 internautes ce mois-ci

Ancor17 65 Messages postés lundi 8 mai 2017Date d'inscription 1 avril 2018 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 65 Messages postés lundi 8 mai 2017Date d'inscription 1 avril 2018 Dernière intervention - 15 mai 2017 à 20:17
C'était juste pour ordonner la liste à l'affichage, ce n'est pas utile en soi.