소개
이 프로젝트에서는 전화번호의 마지막 숫자를 기준으로 직원을 그룹화하고, 그룹을 별도의 CSV 파일로 저장하는 방법을 배우게 됩니다. 이 프로젝트는 Python 을 사용하여 파일 처리, 데이터 처리 및 CSV 파일 관리에 대한 기술을 개발하는 데 도움이 되도록 설계되었습니다.
👀 미리보기
## Input:
python group.py
ls
ls Groups
## Output:
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 파일의 내용을 확인하는 방법
🏆 성과
이 프로젝트를 완료하면 다음을 수행할 수 있습니다:
- Python 에서 CSV 파일 작업 방식을 이해합니다.
- 데이터 처리 및 그룹화 기술을 개발합니다.
- 프로그래밍 방식으로 파일 및 폴더를 생성하고 관리하는 능력을 보여줍니다.
- 실제 문제에 Python 프로그래밍 지식을 적용합니다.
그룹화 로직 구현
이 단계에서는 전화번호의 마지막 숫자를 기준으로 직원을 그룹화하고, 그룹을 별도의 CSV 파일로 저장하는 로직을 구현합니다.
- 텍스트 편집기에서
group.py파일을 엽니다. - 다음 코드를
group()함수에 추가합니다:
import os
import csv
def group():
"""
전화번호의 마지막 숫자를 기준으로 직원을 그룹화하고 각 그룹을 별도의 CSV 파일로 저장합니다.
'roster.csv'라는 CSV 파일에서 직원 데이터를 읽어, 전화번호의 마지막 숫자를 기준으로 그룹화하고,
각 그룹을 'Groups'라는 폴더에 별도의 CSV 파일로 저장합니다.
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폴더로 이동합니다. ls명령을 사용하여Groups폴더의 내용을 나열합니다. 다음과 같은 파일이 표시되어야 합니다:
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 에서 더 많은 랩을 연습하여 기술을 향상시킬 수 있습니다.



