Lire un CSV avec son en-tête en Python

Vaibhav Vaibhav 24 mars 2022
Lire un CSV avec son en-tête en Python

Python est un langage de programmation généraliste défini et facile à comprendre.

Python est l’un des cinq meilleurs langages de programmation au monde car il possède une syntaxe simple et de nombreux utilitaires pour plusieurs domaines tels que l’apprentissage automatique, la science des données, le développement de jeux, le développement Web, le développement d’applications, etc. scènes.

Python fait de la gestion des fichiers une tâche transparente. Nous pouvons facilement créer des fichiers, lire des fichiers, ajouter des données ou écraser des données dans des fichiers existants à l’aide de Python, car il peut gérer de nombreux formats de fichiers tels que txt, csv, xlsx, pdf, etc.

De plus, il contient de nombreux packages open source qui rendent la gestion des fichiers plus efficace et plus simple.

Nous allons apprendre à lire un fichier CSV et son en-tête en utilisant Python dans cet article. Afin que nous soyons sur la même note, nous utiliserons un exemple de fichier à des fins d’illustration dans les extraits de code. Vous pouvez télécharger ce fichier CSV à partir de ici. Les exemples à venir considéreront la première ligne du fichier CSV comme son en-tête.

Lire un CSV avec son en-tête en Python

Python a un package csv que nous pouvons utiliser pour lire les fichiers CSV. Ce package est présent par défaut dans l’installation officielle de Python.

Le package csv a une méthode reader() que nous pouvons utiliser pour lire les fichiers CSV. Il renvoie un objet itérable que nous pouvons parcourir pour imprimer le contenu du fichier CSV en cours de lecture.

from csv import reader

file_name = "email.csv"

with open(file_name, "r") as csv_file:
    csv_reader = reader(csv_file)

    for row in csv_reader:
        print(row)

Production :

['Login email', 'Identifier', 'First name', 'Last name']
['laura@example.com', '2070', 'Laura', 'Grey']
['craig@example.com', '4081', 'Craig', 'Johnson']
['mary@example.com', '9346', 'Mary', 'Jenkins']
['jamie@example.com', '5079', 'Jamie', 'Smith']

La complexité temporelle de la solution ci-dessus est O(n).

Comme nous pouvons le voir, la sortie montre que la première ligne est l’en-tête et les autres lignes ont les valeurs. Nous pouvons encore embellir la sortie en stockant l’en-tête dans une variable distincte et en imprimant le tout dans un format approprié.

from csv import reader

file_name = "email.csv"

with open(file_name, "r") as csv_file:
    csv_reader = reader(csv_file)
    header = next(csv_reader)
    print("Header:")
    print(", ".join(header))
    print("Values:")

    for row in csv_reader:
        print(", ".join(row))

Production :

Header:
Login email, Identifier, First name, Last name
Values:
laura@example.com, 2070, Laura, Grey
craig@example.com, 4081, Craig, Johnson
mary@example.com, 9346, Mary, Jenkins
jamie@example.com, 5079, Jamie, Smith

La complexité temporelle de la solution ci-dessus est O(n).

Dans le code ci-dessus, csv_reader est itérable. À l’aide de la méthode next(), nous avons d’abord récupéré l’en-tête de csv_reader, puis itéré sur les valeurs à l’aide d’une boucle for.

Comme son nom l’indique, les fichiers CSV ont des valeurs séparées par des virgules.

Parfois, les valeurs dans les fichiers CSV ne sont pas séparées par des virgules ; ils pourraient utiliser un point-virgule (;), un deux-points (:), etc., comme séparateur. Dans de tels cas, on peut utiliser l’argument delimiter de la méthode reader() du package csv.

L’argument délimiteur accepte une chaîne ou un caractère qui doit être considéré comme séparateur. Par exemple, si un fichier CSV a ; comme séparateur, le code de lecture d’un tel fichier CSV serait le suivant.

from csv import reader

file_name = "email.csv"

with open(file_name, "r") as csv_file:
    csv_reader = reader(csv_file, delimiter=";")  # Important
    header = next(csv_reader)
    print("Header:")
    print(", ".join(header))
    print("Values:")

    for row in csv_reader:
        print(", ".join(row))

Production :

Header:
Login email, Identifier, First name, Last name
Values:
laura@example.com, 2070, Laura, Grey
craig@example.com, 4081, Craig, Johnson
mary@example.com, 9346, Mary, Jenkins
jamie@example.com, 5079, Jamie, Smith
Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.

Article connexe - Python CSV