Skip to content

Fichiers#

Souvent en bioinfo, on doit lire ou écrire des fichiers

Ouvrir un fichier :

fd = open("nom_du_fichier", "mode d'ouverture")

Modes d'ouverture :

  • r pour lecture
  • w pour écriture, écrase le fichier si il existe déjà
  • a pour écriture, ajoute à la fin du fichier si il existe déjà
  • x pour écriture, échoue si le fichier existe déjà

Python traite les fichiers comme des fichiers texte par défaut (encodage utf-8)

fd est un objet représentant le fichier ouvert sur lequel on peut appeler des fonctions pour manipuler le fichier.

Une fois les manipulations finies, on doit impérativement fermer le fichier !

fd = open("fichier.txt", "r")
# ici instructions utilisant le fichier…
fd.close()
# ici on ne peut plus utiliser fd

Lecture#

Lecture du fichier (fichier ouvert en mode r)
Le fichier a un curseur qui avance à chaque opération de lecture.

Lire tout le fichier comme chaîne de caractères

chaine = fd.read()

Lire n caractères du fichier comme chaîne de caractères

chaine = fd.read(n)

Lire une ligne du fichier comme chaîne de caractères

ligne = fd.readline()

Lire toutes les lignes du fichier dans une liste

lignes = fd.readlines()

Pour revenir au début : fd.seek(0)

Lire le fichier ligne par ligne avec une boucle (Équivalent d'une boucle utilisant fd.readline())

for ligne in fd:
    print(ligne)

La boucle utilise le curseur du fichier de la même manière que les autres fonctions !

Warning

Les lignes lues par readline(), readlines() et la boucle for contiennent les sauts de ligne (\n).

Ecriture#

Écriture dans un fichier (fichier ouvert en mode w, a ou x)

  • Écrire une chaîne de caractères :

    fd.write(chaine)
    

    Warning

    N'ajoute pas automatiquement le saut de ligne ("\n")

  • Écrire plusieurs lignes (liste de chaînes de caractère) :

    fd.writelines(liste)
    

    Warning

    N'ajoute pas non plus les sauts de ligne ("\n")

With#

Ouverture du fichier avec with : fermeture automatique

Fichier fermé automatiquement :

  • A la fin du bloc
  • En cas d'erreur dans le bloc