>> Technologie Électronique >  >> Maison intelligente >> Vie connectée

Comment lire et écrire des fichiers en Python

Au-delà des scripts les plus simples, la programmation Python nécessite souvent de lire ou d'écrire des fichiers externes. Python offre des fonctions intégrées simples et puissantes pour manipuler les fichiers. Voici les bases essentielles.

Ouvrir un fichier

Avant d'ouvrir un fichier, déterminez :

  • Le mode d'accès : lecture (r), écriture (w), ajout (a), lecture/écriture (r+). N'ouvrez qu'avec les permissions nécessaires.
  • Le type de données : texte/ASCII (défaut) ou binaire (ajoutez b : rb, wb). Le mode texte gère automatiquement les fins de ligne selon l'OS.

Exemple d'ouverture

f = open("/chemin/vers/fichier.txt", "r")  # lecture texte
f = open("/chemin/vers/image.png", "wb")   # écriture binaire

Lire depuis un fichier

1. Lecture ligne par ligne (recommandé pour les fichiers texte)

for ligne in f:
    print(ligne.strip())  # .strip() retire le \n final

2. Se positionner dans le fichier (seek)

f.seek(100)      # aller au 100e octet (depuis le début)
f.seek(10, 1)    # avancer de 10 octets depuis la position actuelle
# Arguments seek(offset, whence) : whence=0 (début), 1 (actuel), 2 (fin)

3. Lire des données binaires

donnees = f.read(16)  # lit 16 octets
tout = f.read()       # lit tout le reste du fichier

Écrire dans un fichier

1. Écrire du texte ou des données binaires

f.write("Ce texte sera écrit dans le fichier")
# En mode binaire, passez un objet bytes : f.write(b"data")

2. Sérialiser des objets (pickle)

Pour sauvegarder l'état d'un objet Python :

import pickle
pickle.dump(mon_objet, f)  # f doit être ouvert en mode binaire écriture ("wb")

3. Fermer le fichier (indispensable)

f.close()

Bonne pratique : le gestionnaire de contexte with

Utilisez with pour une fermeture automatique, même en cas d'erreur :

with open("fichier.txt", "r") as f:
    contenu = f.read()
# Le fichier est automatiquement fermé ici

Résumé des modes principaux

ModeDescription
rLecture (texte), erreur si fichier inexistant
wÉcriture (texte), écrase le fichier ou le crée
aAjout (texte), crée si inexistant
rb/wb/abMêmes modes en binaire
r+Lecture/écriture, ne crée pas le fichier
Vie connectée