Введение
В этом проекте вы научитесь группировать сотрудников по последней цифре их телефонных номеров и сохранять группы в отдельные CSV-файлы. Этот проект предназначен для того, чтобы помочь вам развить навыки в работе с файлами, обработке данных и управлении CSV-файлами с использованием Python.
👀 Предварительный просмотр
## Вход:
python group.py
ls
ls Groups
## Выход:
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
🎯 Задачи
В этом проекте вы научитесь:
- настраивать проектную среду и готовить необходимые файлы;
- реализовывать логику группировки сотрудников по последней цифре их телефонных номеров;
- сохранять сгруппированные данные в отдельные CSV-файлы;
- проверять содержимое сгенерированных CSV-файлов.
🏆 Достижения
После завершения этого проекта вы сможете:
- понять, как работать с CSV-файлами в Python;
- развить навыки в обработке и группировке данных;
- продемонстрировать способность программно создавать и управлять файлами и папками;
- применить свои знания Python для решения реальной задачи.
Реализовать логику группировки
В этом шаге вы реализуете логику группировки сотрудников по последней цифре их телефонных номеров и сохраните группы в отдельные CSV-файлы.
- Откройте файл
group.pyв текстовом редакторе. - Добавьте следующий код в функцию
group():
import os
import csv
def group():
"""
Группирует сотрудников по последней цифре их телефонного номера и сохраняет каждую группу в отдельный CSV-файл.
Считывает данные о сотрудниках из CSV-файла с именем 'roster.csv', группирует их по последней цифре телефонного номера
и сохраняет каждую группу в отдельный CSV-файл в папке с именем 'Groups'.
CSV-файл должен иметь следующий формат:
- Первая строка - это строка с заголовками.
- Остальные строки содержат данные о сотрудниках, при этом каждая строка представляет отдельного сотрудника.
:return: None
"""
## Создайте папку 'Groups', если она не существует
if not os.path.exists("Groups"):
os.makedirs("Groups")
## Откройте файл 'roster.csv' для чтения
with open("roster.csv", "r") as file:
reader = csv.reader(file)
header = next(reader) ## Считайте строку с заголовками CSV-файла
## Создайте словарь для хранения групп сотрудников по последней цифре их телефонного номера
groups = {}
for row in reader:
phone_number = row[1] ## Получите телефонный номер из текущей строки
last_digit = int(phone_number[-1]) ## Извлеките последнюю цифру телефонного номера в виде целого числа
## Добавьте текущую строку в соответствующую группу на основе последней цифры
groups.setdefault(last_digit, []).append(row)
## Пройдитесь по группам и сохраните каждую группу в отдельный CSV-файл
for tail_num, employees in groups.items():
filename = f"Groups/Tail_num_{tail_num}.csv" ## Сгенерируйте имя файла для текущей группы
with open(filename, "w", newline="") as file:
writer = csv.writer(file)
writer.writerow(header) ## Запишите строку с заголовками в CSV-файл
writer.writerows(employees) ## Запишите данные о сотрудниках в CSV-файл
if __name__ == "__main__":
group() ## Вызовите функцию 'group' для выполнения процесса группировки и сохранения
- Сохраните файл
group.py.
Запустить скрипт группировки
В этом шаге вы запустите скрипт group.py для генерации сгруппированных CSV-файлов.
- Откройте терминал и перейдите в директорию
/home/labex/project. - Запустите следующую команду для выполнения скрипта
group.py:
python group.py
- После завершения работы скрипта проверьте создание папки
Groupsи сгенерированных внутри нее CSV-файлов.
Проверить сгруппированные CSV-файлы
В этом шаге вы проверите содержимое сгенерированных CSV-файлов.
- Перейдите в папку
Groupsс помощью терминала. - Список содержимого папки
Groupsс помощью командыls. Вы должны увидеть следующие файлы:
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
- Откройте один из CSV-файлов (например,
Tail_num_0.csv) и убедитесь, что файл содержит данные о сотрудниках, при этом первая строка - это заголовок, а остальные строки содержат информацию о сотрудниках.
Поздравляем! Вы успешно завершили проект по группировке сотрудников по последней цифре их телефонных номеров и сохранению групп в отдельные CSV-файлы.
Резюме
Поздравляем! Вы завершили этот проект. Вы можете практиковаться в более многих лабораторных работах в LabEx, чтобы улучшить свои навыки.



