Module OS





OS est le module dédié à la gestion des répertoires et des fichiers. Il permet, entre autres, d’identifier les répertoires de travail, les sous-répertoires et fichiers avec un contrôle sur leurs chemins d’accès, de classer les fichiers par type, etc.

Le répertoire courant

 
Le chemin d’accès au répertoire sur lequel tourne votre application (par exemple « C:Users/Utilisateur » si l’interpréteur Python est installé dans ce répertoire) est renvoyé par la fonction getcwd()
 

 
listdir() affiche la liste des fichiers et sous-répertoires d’un répertoire donné: par exemple, cette liste appliquée au répertoire courant est donnée par
 

 
Pour classer les dossiers et fichiers d’un répertoire, on utilise le module os.path
Trois méthodes de filtrage renvoient une valeur booléenne informant si tel dossier ou fichier existe, si c’est un dossier ou si c’est un fichier

  • exists
  • isdir
  • isfile

 

 
Ces méthodes sont utilisées en association avec la fonction filter pour lister des dossiers( resp. fichiers) satisfaisant des critères précis. Ci-dessous, les noms des dossiers du répertoire courant jusqu’à la lettre ‘B’ incluse.

 
Pour détailler le contenu d’un répertoire, en respectant la hiérarchie des dossiers/sous-dossiers et fichiers, on a recours à la méthode os.walk(). Le nom du répertoire est passé à la méthode, qui renvoie une liste de tuplets sous la forme (nom du dossier, liste des sous-dossiers, liste des fichiers appartenant au dossier). Chaque tuplet représente un niveau hiérarchique.
 
Exemple d’une clé USB avec l’arborescence suivante:
 

 

  • 1er niveau:
    1. le répertoire principal F:
    2. la liste des sous-dossiers [‘System Volume Information’ (présent, mais caché dans les clés USB), ‘VBA_exos’]
    3. deux fichiers ‘Python_SQL.pptx’, ‘Python_Expo.pptx’
  • 2ème niveau:
    1. dossier‘VBA_exos’
    2. la liste des sous-dossiers [‘Exos_base’, ‘Exos_adv’]
    3. trois fichiers [‘exos1.docx’, ‘exos2.docx’, ‘exos_form.xlsm’]
  •  

  • 3ème niveau:
    1. dossier‘Exos_adv’
    2. la liste des sous-dossiers [] (il n’y en a pas)
    3. deux fichiers [‘exos_adv_S1.xlsm’, ‘exos_adv_S2.xlsm’]

     

    1. dossier‘Exos_base’
    2. la liste des sous-dossiers [] (il n’y en a pas non plus)
    3. deux fichiers [‘exos_base_S1.xlsm’, ‘exos_base_S2.xlsm’]

Ci-dessous, le code pour obtenir cette décomposition