Mitarbeiter nach Telefonnummer gruppieren

PythonPythonBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Projekt lernst du, wie du Mitarbeiter anhand der letzten Ziffer ihrer Telefonnummern gruppierst und die Gruppen in separate CSV-Dateien speicherst. Dieses Projekt ist so konzipiert, dass es dir hilft, Fähigkeiten im Umgang mit Dateien, Datenverarbeitung und der CSV-Dateiverwaltung mit Python zu entwickeln.

👀 Vorschau

## Eingabe:
python group.py
ls
ls Groups
## Ausgabe:
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

🎯 Aufgaben

In diesem Projekt wirst du lernen:

  • Wie du die Projektumgebung einrichtest und die erforderlichen Dateien vorbereitest
  • Wie du die Logik implementierst, um Mitarbeiter anhand der letzten Ziffer ihrer Telefonnummern zu gruppieren
  • Wie du die gruppierten Daten in separate CSV-Dateien speicherst
  • Wie du die Inhalte der generierten CSV-Dateien überprüfst

🏆 Errungenschaften

Nach Abschluss dieses Projekts wirst du in der Lage sein:

  • Zu verstehen, wie man mit CSV-Dateien in Python umgeht
  • Fähigkeiten in der Datenverarbeitung und -gruppierung zu entwickeln
  • Deine Fähigkeiten im programmgesteuerten Erstellen und Verwalten von Dateien und Ordnern zu demonstrieren
  • Dein Python-Programmierwissen auf ein reales Problem anzuwenden

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/ModulesandPackagesGroup(["Modules and Packages"]) python(("Python")) -.-> python/FileHandlingGroup(["File Handling"]) python(("Python")) -.-> python/PythonStandardLibraryGroup(["Python Standard Library"]) python/ModulesandPackagesGroup -.-> python/using_packages("Using Packages") python/FileHandlingGroup -.-> python/file_reading_writing("Reading and Writing Files") python/FileHandlingGroup -.-> python/file_operations("File Operations") python/PythonStandardLibraryGroup -.-> python/data_collections("Data Collections") python/PythonStandardLibraryGroup -.-> python/data_serialization("Data Serialization") subgraph Lab Skills python/using_packages -.-> lab-302756{{"Mitarbeiter nach Telefonnummer gruppieren"}} python/file_reading_writing -.-> lab-302756{{"Mitarbeiter nach Telefonnummer gruppieren"}} python/file_operations -.-> lab-302756{{"Mitarbeiter nach Telefonnummer gruppieren"}} python/data_collections -.-> lab-302756{{"Mitarbeiter nach Telefonnummer gruppieren"}} python/data_serialization -.-> lab-302756{{"Mitarbeiter nach Telefonnummer gruppieren"}} end

Implementiere die Gruppierungslogik

In diesem Schritt wirst du die Logik implementieren, um die Mitarbeiter anhand der letzten Ziffer ihrer Telefonnummern zu gruppieren und die Gruppen in separate CSV-Dateien zu speichern.

  1. Öffne die Datei group.py in einem Texteditor.
  2. Füge den folgenden Code zur group()-Funktion hinzu:
import os
import csv

def group():
    """
    Gruppiere Mitarbeiter anhand der letzten Ziffer ihrer Telefonnummer und speichere jede Gruppe in einer separaten CSV-Datei.

    Liest Mitarbeiterdaten aus einer CSV-Datei namens 'roster.csv', gruppiert sie anhand der letzten Ziffer ihrer Telefonnummer
    und speichert jede Gruppe in einer separaten CSV-Datei in einem Ordner namens 'Groups'.

    Die CSV-Datei sollte das folgende Format haben:
    - Die erste Zeile ist die Kopfzeile.
    - Die verbleibenden Zeilen enthalten Mitarbeiterdaten, wobei jede Zeile einen einzelnen Mitarbeiter repräsentiert.

    :return: None
    """
    ## Erstelle den Ordner 'Groups', wenn er nicht existiert
    if not os.path.exists("Groups"):
        os.makedirs("Groups")

    ## Öffne die Datei 'roster.csv' zum Lesen
    with open("roster.csv", "r") as file:
        reader = csv.reader(file)
        header = next(reader)  ## Lies die Kopfzeile der CSV-Datei

        ## Erstelle ein Dictionary, um Gruppen von Mitarbeitern anhand der letzten Ziffer ihrer Telefonnummer zu speichern
        groups = {}
        for row in reader:
            phone_number = row[1]  ## Hole die Telefonnummer aus der aktuellen Zeile
            last_digit = int(phone_number[-1])  ## Extrahiere die letzte Ziffer der Telefonnummer als Ganzzahl

            ## Füge die aktuelle Zeile zur entsprechenden Gruppe basierend auf der letzten Ziffer hinzu
            groups.setdefault(last_digit, []).append(row)

    ## Iteriere über die Gruppen und speichere jede Gruppe in einer separaten CSV-Datei
    for tail_num, employees in groups.items():
        filename = f"Groups/Tail_num_{tail_num}.csv"  ## Generiere den Dateinamen für die aktuelle Gruppe
        with open(filename, "w", newline="") as file:
            writer = csv.writer(file)
            writer.writerow(header)  ## Schreibe die Kopfzeile in die CSV-Datei
            writer.writerows(employees)  ## Schreibe die Mitarbeiterdaten in die CSV-Datei

if __name__ == "__main__":
    group()  ## Rufe die 'group'-Funktion auf, um den Gruppierungs- und Speicherprozess auszuführen
  1. Speichere die Datei group.py.

Führe das Gruppierungsskript aus

In diesem Schritt wirst du das Skript group.py ausführen, um die gruppierten CSV-Dateien zu generieren.

  1. Öffne ein Terminal und navigiere zum Verzeichnis /home/labex/project.
  2. Führe den folgenden Befehl aus, um das Skript group.py auszuführen:
python group.py
  1. Nachdem das Skript abgeschlossen ist, überprüfe die Erstellung des Ordners Groups und der darin generierten CSV-Dateien.

Überprüfe die gruppierten CSV-Dateien

In diesem Schritt wirst du die Inhalte der generierten CSV-Dateien überprüfen.

  1. Navigiere mit dem Terminal zum Ordner Groups.
  2. Liste die Inhalte des Ordners Groups mit dem Befehl ls auf. Du solltest die folgenden Dateien sehen:
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. Öffne eine der CSV-Dateien (z.B. Tail_num_0.csv) und überprüfe, dass die Datei die Mitarbeiterdaten enthält, wobei die erste Zeile die Kopfzeile ist und die verbleibenden Zeilen die Mitarbeiterinformationen enthalten.

Herzlichen Glückwunsch! Du hast das Projekt erfolgreich abgeschlossen, bei dem du Mitarbeiter anhand der letzten Ziffer ihrer Telefonnummern gruppiert und die Gruppen in separate CSV-Dateien gespeichert hast.

✨ Lösung prüfen und üben

Zusammenfassung

Herzlichen Glückwunsch! Du hast dieses Projekt abgeschlossen. Du kannst in LabEx weitere Übungen absolvieren, um deine Fähigkeiten zu verbessern.