Regroupement des employés par numéro de téléphone

PythonPythonBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce projet, vous allez apprendre à regrouper les employés en fonction du dernier chiffre de leurs numéros de téléphone et à enregistrer les groupes dans des fichiers CSV distincts. Ce projet est conçu pour vous aider à développer des compétences en manipulation de fichiers, en traitement de données et en gestion de fichiers CSV à l'aide de Python.

👀 Aperçu

## Entrée :
python group.py
ls
ls Groups
## Sortie :
Groups roster.csv group.py
Tail_num_0.csv  Tail_num_2.csv  Tail_num_4.csv  Tail_num_6.csv  Tail_num_8.csv
Tail_num_1.csv  Tail_num_3.csv  Tail_num_5.csv  Tail_num_7.csv  Tail_num_9.csv

🎯 Tâches

Dans ce projet, vous allez apprendre :

  • Comment configurer l'environnement du projet et préparer les fichiers nécessaires
  • Comment implémenter la logique pour regrouper les employés en fonction du dernier chiffre de leurs numéros de téléphone
  • Comment enregistrer les données regroupées dans des fichiers CSV distincts
  • Comment vérifier le contenu des fichiers CSV générés

🏆 Réalisations

Après avoir terminé ce projet, vous serez capable de :

  • Comprendre comment travailler avec des fichiers CSV en Python
  • Développer des compétences en traitement et regroupement de données
  • Montrer votre capacité à créer et gérer des fichiers et des dossiers par programmation
  • Appliquer vos connaissances en programmation Python à un problème du monde réel

Implémentez la logique de regroupement

Dans cette étape, vous allez implémenter la logique pour regrouper les employés en fonction du dernier chiffre de leurs numéros de téléphone et enregistrer les groupes dans des fichiers CSV distincts.

  1. Ouvrez le fichier group.py dans un éditeur de texte.
  2. Ajoutez le code suivant à la fonction group() :
import os
import csv

def group():
    """
    Regroupe les employés en fonction du dernier chiffre de leur numéro de téléphone et enregistre chaque groupe dans un fichier CSV distinct.

    Lit les données des employés à partir d'un fichier CSV nommé 'roster.csv', les regroupe en fonction du dernier chiffre de leur numéro de téléphone,
    et enregistre chaque groupe dans un fichier CSV distinct dans un dossier nommé 'Groups'.

    Le fichier CSV doit avoir le format suivant :
    - La première ligne est la ligne d'en-tête.
    - Les lignes suivantes contiennent les données des employés, chaque ligne représentant un seul employé.

    :return: None
    """
    ## Crée le dossier 'Groups' s'il n'existe pas
    if not os.path.exists("Groups"):
        os.makedirs("Groups")

    ## Ouvre le fichier 'roster.csv' pour la lecture
    with open("roster.csv", "r") as file:
        reader = csv.reader(file)
        header = next(reader)  ## Lit la ligne d'en-tête du fichier CSV

        ## Crée un dictionnaire pour stocker les groupes d'employés en fonction du dernier chiffre de leur numéro de téléphone
        groups = {}
        for row in reader:
            phone_number = row[1]  ## Obtient le numéro de téléphone de la ligne actuelle
            last_digit = int(phone_number[-1])  ## Extrait le dernier chiffre du numéro de téléphone sous forme d'un entier

            ## Ajoute la ligne actuelle au groupe correspondant en fonction du dernier chiffre
            groups.setdefault(last_digit, []).append(row)

    ## Parcourt les groupes et enregistre chaque groupe dans un fichier CSV distinct
    for tail_num, employees in groups.items():
        filename = f"Groups/Tail_num_{tail_num}.csv"  ## Génère le nom de fichier pour le groupe actuel
        with open(filename, "w", newline="") as file:
            writer = csv.writer(file)
            writer.writerow(header)  ## Écrit la ligne d'en-tête dans le fichier CSV
            writer.writerows(employees)  ## Écrit les données des employés dans le fichier CSV

if __name__ == "__main__":
    group()  ## Appelle la fonction 'group' pour exécuter le processus de regroupement et d'enregistrement
  1. Enregistrez le fichier group.py.

Exécutez le script de regroupement

Dans cette étape, vous allez exécuter le script group.py pour générer les fichiers CSV regroupés.

  1. Ouvrez un terminal et accédez au répertoire /home/labex/project.
  2. Exécutez la commande suivante pour exécuter le script group.py :
python group.py
  1. Après l'exécution terminée du script, vérifiez la création du dossier Groups et des fichiers CSV générés à l'intérieur.

Vérifiez les fichiers CSV regroupés

Dans cette étape, vous allez vérifier le contenu des fichiers CSV générés.

  1. Accédez au dossier Groups à l'aide du terminal.
  2. Liste le contenu du dossier Groups à l'aide de la commande ls. Vous devriez voir les fichiers suivants :
Tail_num_0.csv  Tail_num_2.csv  Tail_num_4.csv  Tail_num_6.csv  Tail_num_8.csv
Tail_num_1.csv  Tail_num_3.csv  Tail_num_5.csv  Tail_num_7.csv  Tail_num_9.csv
  1. Ouvrez l'un des fichiers CSV (par exemple, Tail_num_0.csv) et vérifiez que le fichier contient les données des employés, la première ligne étant l'en-tête et les lignes suivantes contenant les informations des employés.

Félicitations ! Vous avez réussi le projet de regroupement des employés en fonction du dernier chiffre de leurs numéros de téléphone et d'enregistrement des groupes dans des fichiers CSV distincts.

✨ Vérifier la solution et pratiquer

Sommaire

Félicitations ! Vous avez terminé ce projet. Vous pouvez pratiquer plus de laboratoires dans LabEx pour améliorer vos compétences.