Carte SD, fichiers, rép.

Ce que l'on va faire ici

Ici, nous allons voir comment utiliser le système de fichiers.

MicroPython dispose d'un module uos qui est un version allégée du module os Python natif mais qui fournit les fonctions utile d'accès au système de fichiers facilement et directement depuis le code Python. C'est véritablement un module qui donne à Micropython le statut de micro-OS, de micro système d'exploitation, ce qui le distingue des plateformes classiques.

La liste des fonctions disponibles est ici : http://docs.micropython.org/en/latest/pyboard/library/uos.html

Utilisation des fichiers sur la carte Pi Pico

Création d'un fichier

>>>f=open("testfile.txt","w")
>>> f.write("88.88")
5
>>> f.close()


Import du module : 

```python 
>>>import os

Lister les fichiers présents sur la flash :

>>> os.listdir()
['main.py', 'test.py', 'testfile.txt', 'test', 'upyduino_pi_pico.py']

Ouvrir et lire le fichier précédemment créé :

>>> f=open("testfile.txt","r")
>>> content=f.read()
>>> f.close()
>>> content
'88.88'

Création d'un fichier comportant un grand nombre de valeurs

>>> f=open("textfile.txt","w")
>>> for i in range(1440):
...     f.write(str(i)+":88.88")
...
>>> f.close()

Lecture du fichier :

>>> f=open("textfile.txt","r")
>>> content=f.read()
>>> f.close()
>>> content

Note

Le fichier de plus de 1000 valeurs s'ouvre plutôt rapidement, de l'ordre d'une seconde.

Exemple d'ériture de fichier et gestion des répertoire dans la mémoire Flash

import machine
import os

print(os.uname()) # information système

print(os.getcwd()) # répertoire courant - à priori flash

# fonctions disponibles ici : http://docs.micropython.org/en/latest/pyboard/library/uos.html

try:
    os.mkdir("test") # crée le répertoire
except:
    print("Repertoire existe")

print(os.listdir()) # affiche contenu répertoire courant

os.chdir("test") # change de répertoire
print(os.getcwd())

f=open("testfile.txt","w")
f.write("Test")
f.close()

print(os.listdir("/test/")) # affiche contenu répertoire voulu

os.chdir("/") # revient à la racine avec "/flash" et non pas /
print(os.getcwd())

Warning

Sur la pico pi, on dispose de 264K de RAM et 2Mo de mémoire Flash ! Ce qui laisse du mou ! Par contre, on ne voit pas très bien ce qui reste disponible...

Liens utiles