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

  1. requests : Télécharger des pages HTML.

  2. BeautifulSoup : Parser des documents HTML/XML.

  3. selenium : Automatiser des interactions avec les navigateurs pour les sites dynamiques.

Étapes de Web Scraping

  1. Envoyer une requête HTTP avec requests.

  2. Analyser le contenu HTML avec BeautifulSoup.

  3. 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 et BeautifulSoup.