はじめに
このプロジェクトでは、社員の電話番号の最終桁に基づいて社員をグループ化し、それぞれの CSV ファイルに保存する方法を学びます。このプロジェクトは、Python を使ったファイル操作、データ処理、CSV ファイル管理のスキルを身につけるのに役立ちます。
👀 プレビュー
## 入力:
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 ファイルの内容を検証する方法
🏆 成果
このプロジェクトを完了すると、以下のことができるようになります。
- Python で CSV ファイルを扱う方法を理解する
- データ処理とグループ化のスキルを身につける
- プログラムでファイルとフォルダを作成および管理する能力を示す
- Python プログラミングの知識を現実世界の問題に適用する
グループ化ロジックを実装する
このステップでは、社員の電話番号の最終桁に基づいて社員をグループ化し、それぞれの CSV ファイルに保存するロジックを実装します。
- テキストエディタで
group.pyファイルを開きます。 group()関数に以下のコードを追加します。
import os
import csv
def group():
"""
社員の電話番号の最終桁に基づいて社員をグループ化し、それぞれのグループを個別の CSV ファイルに保存します。
'roster.csv' という名前の CSV ファイルから社員データを読み取り、電話番号の最終桁に基づいてグループ化し、
それぞれのグループを 'Groups' という名前のフォルダ内の個別の CSV ファイルに保存します。
CSV ファイルは以下の形式でなければなりません。
- 最初の行はヘッダー行です。
- 残りの行は社員データを含み、各行は 1 人の社員を表します。
:return: なし
"""
## '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ファイルを保存します。
グループ化スクリプトを実行する
このステップでは、グループ化された CSV ファイルを生成するために group.py スクリプトを実行します。
- ターミナルを開き、
/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
- 1 つの CSV ファイル(例:
Tail_num_0.csv)を開き、最初の行がヘッダーで残りの行が社員情報で構成されていることを確認します。
おめでとうございます!社員の電話番号の最終桁に基づいて社員をグループ化し、それぞれのグループを個別の CSV ファイルに保存するプロジェクトを成功裏に完了しました。
まとめ
おめでとうございます!このプロジェクトを完了しました。あなたは実験(Lab)をもっと練習することができ、あなたのスキルを向上させることができます。



