Photo by Sincerely Media on Unsplash
Guide Complet : Manipulation des Fichiers et Web Scraping en Python (Avec Exemples Concrets)
Introduction
La manipulation des fichiers est une compétence essentielle pour tout développeur Python. Elle permet de lire, écrire, modifier et organiser des données stockées dans différents formats comme les fichiers texte, JSON, CSV, ou encore des fichiers multimédias. Ce guide détaille les méthodes, modes et bonnes pratiques, avec des exemples concrets pour chaque type de fichier.
Partie 1 : Comprendre les Modes d'Ouverture des Fichiers en Python
Python utilise la fonction open()
pour manipuler des fichiers. Les modes d'ouverture déterminent comment un fichier est utilisé :
Principaux Modes d'Ouverture :
r
(lecture seule) : ouvre un fichier en mode lecture. Erreur si le fichier n'existe pas.w
(écriture) : crée un fichier ou écrase son contenu s'il existe déjà.a
(ajout) : ajoute du contenu à la fin d'un fichier existant ou le crée s'il n'existe pas.r+
(lecture/écriture) : ouvre un fichier en lecture et écriture. Erreur si le fichier n'existe pas.x
(création) : crée un fichier, erreur si le fichier existe déjà.
Exemples Concrets :
Mode r
: Lecture
try:
with open('exemple.txt', 'r', encoding='utf-8') as fichier:
contenu = fichier.read()
print(contenu)
except FileNotFoundError:
print("Le fichier n'existe pas.")
Mode w
: Écriture
with open('exemple.txt', 'w', encoding='utf-8') as fichier:
fichier.write("Ligne 1\n")
fichier.write("Ligne 2\n")
Mode a
: Ajout
with open('exemple.txt', 'a', encoding='utf-8') as fichier:
fichier.write("Nouvelle ligne ajoutée.\n")
Mode r+
: Lecture et écriture
with open('exemple.txt', 'r+', encoding='utf-8') as fichier:
contenu = fichier.read()
fichier.write("Texte ajouté après lecture.")
Partie 2 : Caractères Spéciaux et Manipulation de Texte
Les caractères spéciaux permettent de structurer et formater les données dans les fichiers texte.
Principaux Caractères :
\n
: nouvelle ligne\t
: tabulation\\
: barre oblique inversée
Exemple :
with open('special_chars.txt', 'w', encoding='utf-8') as fichier:
fichier.write("Première ligne\n")
fichier.write("\tCette ligne commence par une tabulation.\n")
fichier.write("Barre oblique : \\\n")
Partie 3 : Manipulation des Fichiers JSON
Le format JSON est couramment utilisé pour échanger des données structurées.
Pourquoi JSON ?
Avantages : Facile à lire, supporté par de nombreuses technologies.
Limites : Moins performant pour les grandes bases de données.
Lecture et Écriture de Fichiers JSON
Exemple : Écrire dans un fichier JSON
import json
data = {"nom": "Alice", "âge": 30, "profession": "Ingénieure"}
with open('data.json', 'w', encoding='utf-8') as fichier:
json.dump(data, fichier, indent=4, ensure_ascii=False)
Exemple : Lire un fichier JSON
with open('data.json', 'r', encoding='utf-8') as fichier:
contenu = json.load(fichier)
print(contenu)
Partie 4 : Manipulation des Fichiers Multimédias
Python peut également manipuler des fichiers vidéo ou audio via des bibliothèques comme moviepy
ou télécharger des vidéos à partir de YouTube.
Exemple : Télécharger et lire une vidéo YouTube
Installation de la bibliothèque pytube
Avant d'utiliser pytube
, installez-la avec la commande :
pip install pytube
Téléchargement d'une vidéo YouTube
from pytube import YouTube
yt = YouTube('https://www.youtube.com/watch?v=video_id')
stream = yt.streams.get_highest_resolution()
stream.download(output_path='videos/')
print("Vidéo téléchargée avec succès.")
Manipulation de fichiers vidéo avec moviepy
Installation de la bibliothèque moviepy
pip install moviepy
Exemple : Couper une vidéo
from moviepy.editor import VideoFileClip
clip = VideoFileClip("videos/exemple.mp4")
clip_coupe = clip.subclip(10, 20) # Couper entre 10 et 20 secondes
clip_coupe.write_videofile("videos/exemple_coupe.mp4")
Partie 5 : Web Scraping
Le web scraping permet d'extraire des données depuis des sites web.
Bibliothèques Principales
requests
: Télécharger des pages HTML.BeautifulSoup
: Parser des documents HTML/XML.selenium
: Automatiser des interactions avec les navigateurs pour les sites dynamiques.
Étapes de Web Scraping
Envoyer une requête HTTP avec
requests
.Analyser le contenu HTML avec
BeautifulSoup
.Extraire et stocker les données.
Exemple Concret : Scraper des Titres d'Articles
import requests
from bs4 import BeautifulSoup
url = 'https://example.com'
response = requests.get(url)
if response.status_code == 200:
soup = BeautifulSoup(response.content, 'html.parser')
titres = soup.find_all('h2')
for titre in titres:
print(titre.text)
Résumé
Modes de fichier : Choisissez le mode adapté (
r
,w
,a
, etc.) selon vos besoins.Caractères spéciaux : Structurez vos fichiers avec des caractères comme
\n
ou\t
.JSON : Idéal pour stocker et échanger des données structurées.
Multimédias : Téléchargez et manipulez des fichiers vidéo avec des bibliothèques spécifiques.
Web Scraping : Automatisez l'extraction de données en ligne avec
requests
etBeautifulSoup
.