Contenu d’un répertoire

Contexte

Les systèmes d’exploitation (Windows, Linux, MacOS pour les plus connus) organisent les ressources sous la forme d’une arborescence de répertoires (directory) pouvant contenir plusieurs types d’éléments, dont les principaux sont :

Environnement de travail

Pour cet exercice, vous devez utiliser en priorité le fichier squelette ex06-contenu-repertoire.py. IMPORTANT : Enregistrez le avec Right Click + Save Link As... pour conserver l’encodage.

Selon la convention de structuration des modules, ce fichier sera structuré en quatre parties :

  1. Imports et définition des variables globales ;
  2. Définition des fonctions secondaires ;
  3. Définition de la fonction principale ;
  4. Appel protégé de la fonction principale.

Objectifs

L’objectif est d’écrire une fonction scand() :

On pourra utiliser les “list comprehension” pour une écriture synthétique.

Vérifier le bon fonctionnement de la fonction en effectuant un appel depuis main et en affichant la valeur de retour (les doctests de la fonction donnent des exemples d’appel et les valeurs de retour correspondantes).

Informations complémentaires

Les modules os et os.path

Les modules os et os.path contiennent des fonctions intéressantes pour la manipulation des fichiers et des répertoires.

Il ne sont pas automatiquement chargés en mémoire et doivent être importés. Après import, les fonctions suivantes sont utiles:

Chemins relatifs et absolus

Pour ne pas dépendre du contexte d’exécution, les fonctions os.path.isfile et os.path.isdir nécessitent le passage d’un chemin absolu.

Si le répertoire /home/user/docs contient le fichier letter.txt, alors:

Doctests

Une fois la fonction opérationnelle pour quelques arguments, ET SEULEMENT DANS CE CAS, lancer les doctests dans un terminal:

$ python -m doctest ex06_repertoire.py -v

La totalité des doctests doivent réussir.