Qu'est-ce qu'un fichier et comment est-il utilisé pour stocker des données en programmation ? Cet article explore les types de fichiers, leur structure, leur usage en programmation et les principes de manipulation des fichiers dans divers langages.
Un fichier est une unité de stockage utilisée pour enregistrer des informations de manière durable sur un support de mémoire (comme un disque dur, une clé USB ou un SSD). Contrairement aux données manipulées en mémoire vive (RAM), qui sont volatiles et disparaissent à la fermeture du programme ou de l'ordinateur, les fichiers permettent de sauvegarder les données pour un usage futur.
Un fichier est une séquence organisée de données stockée sur un support non volatil (disque dur, SSD, etc.). Il est identifié par un nom et une extension (comme données.txt, image.jpg, ou base.csv), qui indiquent son contenu ou son rôle.
Un fichier est constitué de :
Les fichiers texte stockent des données sous forme de caractères lisibles par les humains. Ils sont utilisés pour des formats simples comme .txt, .csv ou .json.
Exemple de contenu (fichier .txt) :
Alice,25
Bob,30
Charlie,28
Cas d'utilisation :
Les fichiers binaires contiennent des données encodées en format binaire. Ils sont destinés à être interprétés par des programmes spécifiques. Exemples : fichiers d'image (.jpg), d'exécutable (.exe), de vidéo (.mp4).
Exemple de contenu binaire (non lisible directement) :
ÿØÿà JFIF ....Exif
Cas d'utilisation :
Les fichiers sont une méthode essentielle pour sauvegarder des informations générées ou utilisées par des programmes. Voici les étapes typiques pour utiliser un fichier en programmation.
Pour interagir avec un fichier, un programme doit d'abord ouvrir le fichier, soit pour le lire, soit pour y écrire.
| Mode | Description |
|---|---|
r |
Lecture seule. Le fichier doit exister. |
w |
Écriture seule. Crée un fichier vide ou écrase l’existant. |
a |
Ajout à la fin du fichier (sans écraser). |
r+ |
Lecture et écriture combinées. |
Les données peuvent être lues depuis un fichier pour être utilisées dans un programme ou écrites pour y être sauvegardées.
Exemple de lecture d’un fichier texte ligne par ligne :
with open("données.txt", "r") as fichier:
for ligne in fichier:
print(ligne.strip()) # Supprime les espaces et retours à la ligne
Exemple d'écriture dans un fichier texte :
with open("données.txt", "w") as fichier:
fichier.write("Alice,25\n")
fichier.write("Bob,30\n")
Une fois les opérations terminées, le fichier doit être fermé pour libérer les ressources système. Dans de nombreux langages (comme Python), cela est automatisé grâce à des structures comme with.
Lorsqu’un programme génère des données (comme des résultats de calcul, des journaux ou des scores de jeu), ces données doivent être sauvegardées pour éviter de les perdre après la fin du programme.
# Sauvegarder une liste d'utilisateurs dans un fichier
utilisateurs = ["Alice,25", "Bob,30", "Charlie,28"]
with open("utilisateurs.txt", "w") as fichier:
for utilisateur in utilisateurs:
fichier.write(utilisateur + "\n")
Un programme peut lire un fichier pour obtenir des paramètres ou des données d'entrée.
# Charger les utilisateurs depuis un fichier
with open("utilisateurs.txt", "r") as fichier:
for ligne in fichier:
print("Utilisateur:", ligne.strip())
Pour des structures complexes, les fichiers JSON ou CSV sont très courants.
Fichier JSON (JavaScript Object Notation) :
[
{"nom": "Alice", "age": 25},
{"nom": "Bob", "age": 30}
]
Lecture et écriture en Python :
import json
# Écriture
data = [{"nom": "Alice", "age": 25}, {"nom": "Bob", "age": 30}]
with open("data.json", "w") as fichier:
json.dump(data, fichier)
# Lecture
with open("data.json", "r") as fichier:
data = json.load(fichier)
print(data)
Pour manipuler des fichiers binaires, les opérations sont similaires mais nécessitent un mode d'ouverture en binaire (rb ou wb).
# Copier un fichier binaire (exemple : image)
with open("image.jpg", "rb") as fichier_source:
with open("copie_image.jpg", "wb") as fichier_cible:
fichier_cible.write(fichier_source.read())
Bien que simples et efficaces, les fichiers présentent certaines limitations pour des applications complexes :
Pour surmonter ces limitations, on utilise des bases de données (comme SQLite ou MySQL) qui offrent des fonctionnalités avancées pour stocker, organiser et interroger les données.
Les fichiers sont une méthode fondamentale pour stocker et gérer des données en programmation. Ils offrent une solution simple et rapide pour les besoins de stockage persistant, qu’il s’agisse de données texte ou binaires. Cependant, pour des applications plus complexes ou collaboratives, les bases de données sont souvent préférées en raison de leurs fonctionnalités avancées. Maîtriser les fichiers est néanmoins une compétence essentielle pour tout développeur.