Mis a jour le 2025-04-14, 12:10

Lecture/écriture de fichiers tabulés.

import csv pour utiliser ce module.
Lecture d'un fichier tabulé :
  • avec des colonnes séparées par des tabulations :
    fh = open('myFile.tsv')
    reader = csv.reader(fh, delimiter = '\t')
    for ligne in reader:
        print(ligne)
      
    donne pour chaque ligne une liste des cellules de la ligne (liste de strings).
  • avec des colonnes séparées par des virgules, et avec les champs entre doubles quotes (qui peuvent contenir des virgules et mêmes des retours à la ligne) :
    fh = open('myFile.csv')
    reader = csv.reader(fh, delimiter = ',', quotechar = '"')
    for ligne in reader:
        print(ligne)
        
  • si les champs sont trop grands (supérieurs à csv.field_size_limit()), on peut augmenter cette valeur : csv.field_size_limit(2000000)
On peut aussi lire un fichier tabulé avec un header en récupérant pour chaque ligne un dictionnaire dont les clefs sont les headers des colonnes :
  • reader = csv.DictReader(fh, delimiter = '\t')
    for line in reader:
       print(line) # Dictionary
        
  • après avoir lu la première ligne, reader.fieldnames contient les champs du header dans l'ordre.
  • attention : c'est plus lent que csv.reader (environ 3 fois plus lent).
Ecriture d'un fichier tabulé :
avec des tabulations comme séparateur (défaut est la virgule) et des newlines en fin de ligne (défaut est carriage return + newline) :
with open('myFile.csv', 'w') as fhOut:
    writer = csv.writer(fhOut, delimiter = '\t', lineterminator = '\n')
    writer.writerow(['a', 'b', 'c'])
    writer.writerow(['A', 'B', 'C'])
    writer.writerow([1, 2, 'x'])
  
writerow fait automatiquement la conversion en string si besoin.
Le module csv permet de lire ou d'écrire des fichiers ASCII tabulés type exports Excel.

Copyright python-simple.com
programmer en python, tutoriel python, graphes en python, Aymeric Duclert