Chargez des données avec Python

Python peut être utilisé pour lire les données de différents endroits, y compris les bases de données et les fichiers. Deux types de fichiers sont souvent utilisés : .txt et .csv. Vous pouvez importer et exporter les fichiers avec la fonctionnalité intégrée de Python ou le package CSV. Nous allons voir les deux options !

Un fichier de code se transforme en fichier .CSV
Charger des données signifie transférer des données de fichiers vers le code ou inversement.

Chargez des données avec les fonctions intégrées de Python

Pour lire et écrire un fichier, vous pouvez utiliser la fonction intégrée   open()  , qui requiert deux paramètres : le nom du fichier et le mode

Nom du fichier : le chemin d’accès au fichier que vous voulez lire ou dans lequel vous voulez écrire.

Mode : le mode que vous voulez utiliser pour le fichier. Les options principales sont :

  • Lire :   "r"

  • Écrire (écraser) :   "w"

  • Continuer d’écrire :   "a"

  • Lire et écrire (sans écraser) :   "r+"

Pour créer un nouveau fichier appelé « bonjour.txt » et y écrire « Hello, world! », utilisez le code ci-dessous :

fichier = open("hello.txt", "w")
fichier.write("Hello, world!")
fichier.close()

Vous pouvez aussi utiliser l’instruction  with  pour fermer automatiquement le fichier à la fin du bloc :

with open("file.txt") as fichier:
for ligne in fichier:
# faire quelque chose avec une ligne
print(ligne)

Avec ce code, le fichier d’entrée va être affiché ligne par ligne. Vous avez probablement remarqué que nous n’avons pas spécifié de mode dans   open()  ... C’est tout simplement parce que le mode d’ouverture par défaut est la lecture, ou   "r"  !

Le package CSV

La méthode   open()  peut lire et écrire sur les fichiers .txt et .csv, mais vous pouvez aussi utiliser le package CSV de Python pour lire et écrire dans les fichiers CSV. Ce package offre plus de fonctionnalités.

Quand vous utilisez le package CSV, vous devez aussi utiliser la fonction   open()  pour ouvrir le fichier. Vous pouvez ensuite utiliser les méthodes   reader()  ou   writer()  sur le fichier pour le lire ou y écrire.

Lisez les fichiers externes

Commençons avec la lecture des fichiers externes. Disons que vous avez un fichier CSV nommécouleurs_preferees.csvqui ressemble à ça : 

nom,metier,couleur_preferee
Jacob Smith,Ingénieur en informatique,Violet
Nora Scheffer,Stratégiste numérique,Bleu
Emily Adams,Responsable Marketing,Orange

La méthode   .reader()  va prendre tout le texte dans un CSV, le parser ligne par ligne et convertir chaque ligne dans une liste de chaînes. Vous pouvez utiliser différents délimiteurs pour décider de la manière de séparer chaque colonne, mais le séparateur le plus commun est une virgule. L’extrait de code ci-dessous lit le fichier CSV et affiche chaque ligne.

import csv
with open('couleurs_preferees.csv') as fichier_csv:
reader = csv.reader(fichier_csv, delimiter=',')
for ligne in reader:
print(ligne)

Le résultat sera comme ceci :

['nom', 'metier', 'couleur_preferee']
['Jacob Smith', 'Ingénieur en informatique', 'Violet']
['Nora Scheffer', 'Stratégiste numérique', 'Bleu']
['Emily Adams', 'Responsable Marketing', 'Orange']

Bien que cette approche puisse être utile parfois, la ligne d’en-tête est considérée comme la même que les autres. Une méthode plus utile pour lire les fichiers CSV, tout en reconnaissant les en-têtes pour identifier les colonnes, est la méthode  DictReader()  . Cette méthode sait que la première ligne est un en-tête, et sauvegarde les autres lignes en tant que dictionnaires. Chaque clé est un nom de colonne, et la valeur est la valeur de la colonne.

Le code ci-dessous montre comment utiliser la méthode  DictReader()  .

import csv
with open('couleurs_preferees.csv') as fichier_csv:
reader = csv.DictReader(fichier_csv, delimiter=',')
for ligne in reader:
print(ligne['nom'] + " travaille en tant que " + ligne['metier'] + " et sa couleur préférée est " + ligne['couleur_preferee'])

Le résultat affichera :

Jacob Smith travaille en tant que Ingénieur en informatique et sa couleur préférée est Violet
Nora Scheffer travaille en tant que Stratégiste numérique et sa couleur préférée est Bleu
Emily Adams travaille en tant que Responsable Marketing et sa couleur préférée est Orange

Bien plus utile, n’est-ce pas ?

Écrivez dans des fichiers externes

Pour comprendre comment écrire dans des fichiers externes, revenons sur notre exemple d’extraction de données web. Nous avons déjà écrit le code pour extraire et transformer les données du site d’informations et de communication du gouvernement britannique. Nous avons sauvegardé tous les titres et descriptions dans des listes de chaînes de caractères. Maintenant, nous pouvons utiliser les fonctions   .writer()  et   .writerow()  pour écrire les données dans le fichier CSV. 

# Créer une liste pour les en-têtes
en_tete = ["titre", "description"]
# Créer un nouveau fichier pour écrire dans le fichier appelé « data.csv »
with open('data.csv', 'w') as fichier_csv:
# Créer un objet writer (écriture) avec ce fichier
writer = csv.writer(fichier_csv, delimiter=',')
writer.writerow(en_tete)
# Parcourir les titres et descriptions - zip permet d'itérer sur deux listes ou plus à la fois
for titre, description in zip(titres, descriptions):
# Créer une nouvelle ligne avec le titre et la description à ce moment de la boucle
ligne = [titre, description]
writer.writerow(ligne)

Et voilà ! Votre fichier s’est rempli de données extraites du web. Regardez la capture vidéo ci-dessous pour parcourir chaque ligne.

Ensuite, téléchargez le fichier de code script_p3c3.py de ce dossier, et exécutez-le dans votre éditeur. Prenez le temps de comprendre ce que chaque ligne fait, et n’hésitez pas à regarder les captures vidéo plusieurs fois si besoin.

Vous avez peut-être remarqué que certaines instructions de ce code se répètent. Essayez de les séparer en différentes fonctions vous-même. Une fois que vous avez essayé, regardez le fichier de code script_p3c3_solution.py du dossier pour comparer avec ce que vous avez fait. Mais n’oubliez pas qu’il n’y a pas qu’une seule bonne réponse !

A vous de jouer 

Contexte

Supposons que vous soyez un responsable RH et que vous deviez créer un fichier contenant les salaires de vos employés. Nous allons lire dans un fichier CSV les noms des employés et les heures travaillées, puis créer un autre fichier CSV avec leurs salaires calculés.

Consignes

  1. Écrivez un script pour lire le contenu de notre fichier  input.csv  au format suivant :

nom

heures_travaillees

Pierre Durand 

35

Paul Dupont

41

Edouard Gentil

40

  1. Créez un nouveau fichier CSV appelé  output.csv  qui devrait avoir le format suivant :

Les salaires sont calculés à l'aide de la formule  heures_travaillées * 15.

nom

salaire

Pierre Durand 

540

Paul Dupont

615

Edouard Gentil

600

Une fois que vous avez terminé l'exercice, vous pouvez exécuter la commande suivante dans le terminal de VS code  pytest tests.py

En résumé

  • On charge des données en lisant un fichier ou en y écrivant.

  • On peut lire et écrire des fichiers avec la méthode intégrée de Python open()  .

  • Les méthodes .writer()  et .DictReader()  du package CSV de Python facilitent le travail sur les fichiers CSV. 

  • Les modes principaux d’écriture de fichiers sont "r"  pour la lecture, "w"  pour l’écriture (écrasement) et "a"  pour l’ajout.

Génial ! Vous avez appris à extraire, transformer et charger des données du web. Dans la suite, nous allons plonger dans les problèmes éthiques et les défis posés par l’extraction de données web.

Et si vous obteniez un diplôme OpenClassrooms ?
  • Formations jusqu’à 100 % financées
  • Date de début flexible
  • Projets professionnalisants
  • Mentorat individuel
Trouvez la formation et le financement faits pour vous