Accueil Doc Commandes OS

// doc / outils

Commandes OS MicroPython

Gérer les fichiers sur l'ESP32 depuis le REPL ou un script : lister, créer, supprimer, renommer.

Les deux fichiers essentiels

boot.py

S'exécute en premier à chaque démarrage. Utilisé pour la configuration système : connexion WiFi, initialisation matérielle, paramètres globaux. Si absent, ignoré.

main.py

S'exécute après boot.py. C'est ton programme principal. Si absent, l'ESP32 reste en attente dans le REPL. C'est le fichier que tu crées pour tes projets.

Ordre de démarrage : reset → boot.pymain.py → REPL (si main.py absent ou terminé)

Le module os

CommandeDescriptionExemple
os.listdir() Liste les fichiers du dossier courant os.listdir() # ['boot.py', 'main.py']
os.listdir(path) Liste un dossier spécifique os.listdir('/lib')
os.mkdir(name) Crée un dossier os.mkdir('lib')
os.remove(path) Supprime un fichier os.remove('old.py')
os.rename(src, dst) Renomme ou déplace os.rename('a.py', 'b.py')
os.stat(path) Infos sur un fichier (taille, dates) os.stat('main.py')
os.getcwd() Dossier courant os.getcwd() # '/'
os.chdir(path) Changer de dossier os.chdir('/lib')
os.uname() Infos système (modèle, version) os.uname()

Exemples pratiques

Lister tous les fichiers

import os

# Fichiers à la racine
print(os.listdir())

# Avec taille
for f in os.listdir():
    stat = os.stat(f)
    print(f, "—", stat[6], "octets")

Créer une arborescence

import os

# Créer un dossier lib pour les modules
os.mkdir('lib')
os.mkdir('data')

# Vérifier
print(os.listdir())  # ['boot.py', 'main.py', 'lib', 'data']

Lire et écrire un fichier

import os

# Écrire dans un fichier
with open('config.txt', 'w') as f:
    f.write('ssid=MonWiFi\n')
    f.write('password=12345\n')

# Lire
with open('config.txt', 'r') as f:
    print(f.read())

# Supprimer
os.remove('config.txt')

Vider complètement la carte

import os

def supprimer_tout():
    for f in os.listdir():
        try:
            os.remove(f)
        except:
            pass  # dossiers ignorés

# Ou depuis le REPL Thonny :
# View → Files → clic droit → Delete

Infos système utiles

import os, gc

# Version MicroPython et modèle de carte
print(os.uname())
# (sysname='esp32', nodename='esp32', release='1.x.x', ...)

# Mémoire libre (RAM)
gc.collect()
print("RAM libre :", gc.mem_free(), "octets")
print("RAM allouée :", gc.mem_alloc(), "octets")

# Espace disque (Flash)
fs = os.statvfs('/')
bloc = fs[0]
libre = fs[3]
total = fs[2]
print("Flash libre :", libre * bloc, "octets /", total * bloc, "octets")

Bonnes pratiques

Utiliser /lib pour les modules

Place tes modules tiers (.py) dans un dossier /lib. MicroPython l'ajoute automatiquement au chemin de recherche.

boot.py léger

Garde boot.py minimal — uniquement WiFi et config. Mets toute la logique dans main.py pour faciliter le débogage.

Sauvegarder les données

Pour stocker des mesures, écris dans un fichier .txt ou .csv sur la Flash. La Flash supporte ~100 000 cycles d'écriture.

Nettoyer la mémoire

Lance gc.collect() régulièrement dans les longues boucles pour libérer la mémoire RAM et éviter les MemoryError.

Utiliser Thonny pour gérer les fichiers

Thonny a un gestionnaire de fichiers visuel — plus pratique que la ligne de commande pour débuter.

Voir la fiche Thonny →