close
close
python recuperation de valeur dans plusieurs fichier texte

python recuperation de valeur dans plusieurs fichier texte

3 min read 02-02-2025
python recuperation de valeur dans plusieurs fichier texte

Ce tutoriel explique comment récupérer des valeurs spécifiques à partir de plusieurs fichiers texte en utilisant Python. Nous aborderons plusieurs méthodes, de la plus simple à la plus robuste, en gérant les erreurs potentielles et en optimisant le code pour une meilleure performance.

Méthode 1: Lecture simple et concaténation (pour fichiers similaires)

Cette méthode est idéale si tous vos fichiers texte ont le même format et que vous souhaitez extraire les mêmes données de chacun. Supposons que chaque fichier contient une valeur numérique sur une seule ligne.

import glob

def recuperer_valeurs_simples(chemin_dossier):
    """Récupère des valeurs numériques de plusieurs fichiers texte dans un dossier.

    Args:
        chemin_dossier: Le chemin d'accès au dossier contenant les fichiers texte.

    Returns:
        Une liste contenant toutes les valeurs numériques récupérées.  Retourne None en cas d'erreur.
    """
    valeurs = []
    try:
        for fichier in glob.glob(chemin_dossier + "/*.txt"):
            with open(fichier, 'r') as f:
                try:
                    valeur = float(f.readline().strip()) # Convertit la ligne en float
                    valeurs.append(valeur)
                except ValueError:
                    print(f"Erreur de conversion de valeur dans le fichier: {fichier}")
                    # Gestion d'erreur: ignorer le fichier ou lever une exception selon vos besoins
    except FileNotFoundError:
        print(f"Le dossier {chemin_dossier} n'existe pas.")
        return None
    return valeurs

# Exemple d'utilisation:
chemin = "mes_fichiers_texte/" # Remplacez par le chemin de votre dossier
valeurs_recuperees = recuperer_valeurs_simples(chemin)

if valeurs_recuperees:
    print("Valeurs récupérées:", valeurs_recuperees)
    # Traitement des valeurs récupérées (calcul de moyenne, somme, etc.)

Points importants:

  • glob.glob() permet de lister tous les fichiers .txt dans le dossier spécifié.
  • Le bloc try...except gère les erreurs de FileNotFoundError (dossier introuvable) et ValueError (erreur de conversion).
  • L'utilisation de with open(...) assure la fermeture automatique du fichier, même en cas d'erreur.

Méthode 2: Extraction de valeurs plus complexes (expressions régulières)

Si le format des fichiers est plus complexe et que vous devez extraire des données spécifiques basées sur un motif, les expressions régulières sont votre alliée.

import re
import glob

def recuperer_valeurs_regex(chemin_dossier, motif):
  """Récupère des valeurs à partir de plusieurs fichiers texte en utilisant des expressions régulières.

  Args:
    chemin_dossier: Le chemin du dossier contenant les fichiers.
    motif: L'expression régulière pour trouver les valeurs.  Doit contenir un groupe de capture.

  Returns:
    Une liste de listes, où chaque sous-liste contient les valeurs extraites d'un fichier.
    Retourne None en cas d'erreur.
  """
  valeurs_totales = []
  try:
    for fichier in glob.glob(chemin_dossier + "/*.txt"):
      with open(fichier, 'r') as f:
        valeurs_fichier = []
        for ligne in f:
          match = re.search(motif, ligne)
          if match:
            valeurs_fichier.append(match.group(1)) # Récupère la valeur du premier groupe de capture
        valeurs_totales.append(valeurs_fichier)
  except FileNotFoundError:
    print(f"Le dossier {chemin_dossier} n'existe pas.")
    return None
  return valeurs_totales


# Exemple avec expression régulière:  supposons que les valeurs sont de la forme "Valeur: 123"
chemin = "mes_fichiers_texte/"
motif = r"Valeur:\s*(\d+)" # \d+ : un ou plusieurs chiffres, \s*: espace(s) optionnel(s)
valeurs = recuperer_valeurs_regex(chemin, motif)

if valeurs:
    print(valeurs)

Points importants:

  • re.search() recherche le motif dans chaque ligne.
  • match.group(1) extrait la valeur du premier groupe de capture (entre parenthèses dans l'expression régulière). Ajustez l'index selon votre expression régulière.

Gestion des Erreurs et Robustesse

Il est crucial de gérer les erreurs potentielles, telles que les fichiers manquants, les formats de fichiers invalides ou les erreurs de conversion de données. Les exemples ci-dessus incluent une gestion basique des erreurs ; vous pouvez l'améliorer en ajoutant une journalisation plus détaillée ou en levant des exceptions plus spécifiques selon vos besoins.

Ce tutoriel fournit une base solide pour récupérer des valeurs de plusieurs fichiers texte en Python. Adaptez les méthodes et les expressions régulières selon vos besoins spécifiques et n'hésitez pas à ajouter des fonctionnalités de gestion d'erreurs plus robustes. N'oubliez pas de remplacer "mes_fichiers_texte/" par le chemin réel de votre dossier.

Related Posts