1. Préparation des données pour la sauvegarde
Dans les conférences précédentes, nous avons appris à extraire des données
des pages web grâce à la bibliothèque BeautifulSoup
. Maintenant, il est temps
de transformer nos exploits en scraping en quelque chose d'utile et
pratique pour l'analyse. Après tout, si les données restent uniquement dans
votre script, cela a peu d'intérêt. Aujourd'hui, nous allons apprendre
comment sauvegarder des données aux formats CSV et Excel, car, comme on dit,
dans la vie d'un programmeur, tout comme dans celle d'un chat, l'essentiel est de trouver
quoi manger... je veux dire, sauvegarder.
Avant de commencer à transformer nos données en tableaux amusants, prenons un moment pour voir comment préparer nos données pour l'exportation. Généralement, les données que nous extrayons des pages web sont présentées sous forme de listes ou de dictionnaires. Il est préférable de les formater de manière à ce qu'elles soient prêtes à être exportées en format tabulaire.
Exemple de données
Imaginons que vous avez collecté les données suivantes sur des livres :
books = [
{"title": "Harry Potter à l'école des sorciers", "author": "J. K. Rowling", "price": "350.00"},
{"title": "Le Seigneur des Anneaux", "author": "J. R. R. Tolkien", "price": "500.00"},
{"title": "Le Maître et Marguerite", "author": "M. A. Boulgakov", "price": "450.00"}
]
2. Sauvegarde au format CSV
CSV
(Comma-Separated Values) est un format texte simple
qui permet de stocker des données tabulaires. Chaque ligne dans un
fichier CSV
correspond à un enregistrement, et chaque colonne est séparée
par des virgules. Voyons comment sauvegarder nos données dans ce
format.
Utilisation de la bibliothèque csv
Python nous offre un module pratique, csv
,
qui rend la vie beaucoup plus facile lorsqu'on travaille avec
des fichiers CSV
. Voici comment exporter nos données sur les livres en
CSV
:
import csv
with open('books.csv', mode='w', newline='', encoding='utf-8') as file:
writer = csv.DictWriter(file, fieldnames=["title", "author", "price"])
writer.writeheader()
writer.writerows(books)
print("Les données ont été sauvegardées avec succès dans books.csv")
Remarque : indiquez toujours
newline=''
lors de l'ouverture du fichier en mode
w
, pour éviter des lignes vides supplémentaires sous
Windows.
Lecture des données depuis un CSV
Pour compléter le tableau, voyons comment lire les données
depuis un fichier CSV
:
with open('books.csv', mode='r', encoding='utf-8') as file:
reader = csv.DictReader(file)
for row in reader:
print(row)
3. Sauvegarde au format Excel
Pour travailler avec Excel en Python, nous utiliserons la bibliothèque
pandas
. Pandas
permet de convertir facilement
nos données en DataFrame et de les exporter dans divers formats, y compris Excel.
Installation de pandas
Si vous n'avez pas encore installé pandas
, vous pouvez le faire
avec pip :
pip install pandas openpyxl
Utilisation de pandas
pour l'exportation vers Excel
Maintenant, sauvegardons nos données sur les livres dans un fichier Excel :
import pandas as pd
df = pd.DataFrame(books)
df.to_excel('books.xlsx', index=False, engine='openpyxl')
print("Les données ont été sauvegardées avec succès dans books.xlsx")
Lecture des données depuis Excel
Quel bonheur non seulement de créer, mais aussi de réutiliser ce qui a été créé ! Voyons comment lire des données depuis un fichier Excel :
df = pd.read_excel('books.xlsx')
print(df)
4. Erreurs et leur gestion
Comme pour tout autre aspect de la programmation, lors de l'exportation
des données, vous pouvez rencontrer des erreurs. Les plus courantes
concernent les chemins de fichiers incorrects ou l'absence des bibliothèques nécessaires. Par exemple, si vous oubliez d'installer
openpyxl
, l'exportation vers Excel échouera.
Vérification de l'existence des fichiers
Avant de tenter d'écrire ou de lire un fichier, il est utile
de vérifier s'il existe. Cela peut être fait avec le module
os
:
import os
if os.path.exists('books.csv'):
print("Le fichier books.csv existe")
else:
print("Le fichier books.csv est introuvable")
Vous ne le croirez peut-être pas, mais l'erreur la plus courante des débutants, c'est d'écraser accidentellement les anciennes données par de nouvelles. Automatiser la sauvegarde de l'historique des fichiers est tout un art.
N'oubliez pas non plus d'inclure la gestion des erreurs avec les
blocs try-except
, pour que votre script ne plante pas au
premier problème rencontré.
GO TO FULL VERSION