« Python : Ecrire dans un fichier » : différence entre les versions
De www.yakakliker.org
(Page créée avec « En Python, la manipulation de fichiers est très directe. Nous allons utiliser l'instruction '''<code>with open()</code>''', qui est la méthode standard et sécurisée pour ouvrir, écrire, puis refermer automatiquement un fichier. === Exemples === <syntaxhighlight lang="python3"> invites = ["Alice", "Bob", "Charlie"] # 'w' signifie 'write' (écriture). Attention : cela écrase le fichier existant. # 'a' signifie 'append' (ajouter). Cela ajoute à la fin du... ») |
Aucun résumé des modifications |
||
| Ligne 36 : | Ligne 36 : | ||
** <code>a</code> (append) : Les nouvelles données sont ajoutées à la suite de ce qui existe déjà. | ** <code>a</code> (append) : Les nouvelles données sont ajoutées à la suite de ce qui existe déjà. | ||
=== Autre exemple === | |||
* On combine Fonctions, Ecriture dans un fichier, Test en cas d'erreur et boucle | |||
<syntaxhighlight lang="python3"> | |||
def ajouter_invite(liste_invites): | |||
"""Fonction pour ajouter un nom à la liste avec vérification.""" | |||
nom = input("Entrez un nom (ou 'stop') : ").strip() | |||
if nom.lower() == "stop": | |||
return False # On indique qu'il faut arrêter | |||
if nom == "" or nom.isdigit(): | |||
# On simule une petite gestion d'erreur logique | |||
print("Erreur : Le nom ne peut pas être vide ou un simple nombre.") | |||
else: | |||
liste_invites.append(nom) | |||
print(f"Succès : {nom} ajouté.") | |||
return True | |||
def sauvegarder_liste(liste, nom_fichier): | |||
"""Enregistre chaque élément de la liste dans un fichier texte.""" | |||
try: | |||
with open(nom_fichier, "w", encoding="utf-8") as f: | |||
for item in liste: | |||
f.write(item + "\n") | |||
print(f"Sauvegarde réussie dans {nom_fichier}") | |||
except Exception as e: | |||
print(f"Erreur lors de la sauvegarde : {e}") | |||
# --- Programme principal --- | |||
invites = [] | |||
en_cours = True | |||
print("--- Gestionnaire d'invités Sécurisé ---") | |||
while en_cours: | |||
try: | |||
en_cours = ajouter_invite(invites) | |||
except Exception as e: | |||
print(f"Une erreur inattendue est survenue : {e}") | |||
print(f"\nListe finale ({len(invites)} personnes) : {invites}") | |||
# Appel de la fonction de sauvegarde | |||
sauvegarder_liste(invites, "mes_invites.txt") | |||
</syntaxhighlight> | |||
[[Catégorie:Python]] | [[Catégorie:Python]] | ||
[[Catégorie:Scripts]] | [[Catégorie:Scripts]] | ||
Dernière version du 21 janvier 2026 à 11:54
En Python, la manipulation de fichiers est très directe.
Nous allons utiliser l'instruction with open(), qui est la méthode standard et sécurisée pour ouvrir, écrire, puis refermer automatiquement un fichier.
Exemples
invites = ["Alice", "Bob", "Charlie"]
# 'w' signifie 'write' (écriture). Attention : cela écrase le fichier existant.
# 'a' signifie 'append' (ajouter). Cela ajoute à la fin du fichier.
with open("invites.txt", "w", encoding="utf-8") as fichier:
for nom in invites:
fichier.write(nom + "\n") # \n permet de passer à la ligne suivante
def sauvegarder_liste(liste, nom_fichier):
"""Enregistre chaque élément de la liste dans un fichier texte."""
try:
with open(nom_fichier, "w", encoding="utf-8") as f:
for item in liste:
f.write(item + "\n")
print(f"Sauvegarde réussie dans {nom_fichier}")
except Exception as e:
print(f"Erreur lors de la sauvegarde : {e}")
# --- Simulation du programme ---
mes_invites = ["Alice", "Marc", "Sophie"]
# Appel de la fonction de sauvegarde
sauvegarder_liste(mes_invites, "mes_invites.txt")
- Le gestionnaire de contexte (
with) : C'est une bonne pratique absolue. Si le programme plante pendant l'écriture, le fichier sera quand même correctement refermé par Python. - L'encodage (
utf-8) : Il est fortement recommandé de le préciser pour gérer correctement les accents français (é, à, ç), sinon ils risquent de mal s'afficher sur certains systèmes. - Le mode "a" vs "w" :
w(write) : Si le fichier existe déjà, il est vidé et remplacé par les nouvelles données.a(append) : Les nouvelles données sont ajoutées à la suite de ce qui existe déjà.
Autre exemple
- On combine Fonctions, Ecriture dans un fichier, Test en cas d'erreur et boucle
def ajouter_invite(liste_invites):
"""Fonction pour ajouter un nom à la liste avec vérification."""
nom = input("Entrez un nom (ou 'stop') : ").strip()
if nom.lower() == "stop":
return False # On indique qu'il faut arrêter
if nom == "" or nom.isdigit():
# On simule une petite gestion d'erreur logique
print("Erreur : Le nom ne peut pas être vide ou un simple nombre.")
else:
liste_invites.append(nom)
print(f"Succès : {nom} ajouté.")
return True
def sauvegarder_liste(liste, nom_fichier):
"""Enregistre chaque élément de la liste dans un fichier texte."""
try:
with open(nom_fichier, "w", encoding="utf-8") as f:
for item in liste:
f.write(item + "\n")
print(f"Sauvegarde réussie dans {nom_fichier}")
except Exception as e:
print(f"Erreur lors de la sauvegarde : {e}")
# --- Programme principal ---
invites = []
en_cours = True
print("--- Gestionnaire d'invités Sécurisé ---")
while en_cours:
try:
en_cours = ajouter_invite(invites)
except Exception as e:
print(f"Une erreur inattendue est survenue : {e}")
print(f"\nListe finale ({len(invites)} personnes) : {invites}")
# Appel de la fonction de sauvegarde
sauvegarder_liste(invites, "mes_invites.txt")