Created
April 7, 2022 18:18
-
-
Save ShingoHattori/eb57ab2768448398311b1647824d7db6 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import os | |
import pandas as pd | |
import csv | |
import re | |
# mast21の2年次時点での必要な分しかわからない.大学院科目やこのルールに従わない奴が出てきた場合破滅する可能性がある.ただ,大抵の場合うまくいくはず. | |
filename = "SIR114514810.csv" | |
csv_header = ["学籍番号","学生氏名","科目番号","科目名 ","単位数","春学期","秋学期","総合評価","科目区分","開講年度","開講区分"] | |
switch = True | |
datas = [] | |
with open(filename, 'r',encoding="utf-8_sig") as f: | |
for row in csv.DictReader(f, csv_header): | |
datas.append(row) | |
results_keys = ["専門科目_必修", "専門科目_選択", "専門基礎科目_必修", '専門基礎科目_選択', '基礎科目_共通科目_必修科目_総合', '基礎科目_共通科目_必修科目_体育', '基礎科目_共通科目_必修科目_情報', '基礎科目_共通科目_必修科目_外国語', '基礎科目_共通科目_選択科目_総合', '自由', "GB,GB", '博物館', '教職', '国語', '基礎科目_関連科目_選択科目'] | |
results = {} | |
for key in results_keys: | |
results[key] = [] | |
required = {"専門科目_必修":"書いてあるとおり", "専門科目_選択":"20~35","専門基礎科目_必修":"わからん", '専門基礎科目_選択':"20~35", '基礎科目_共通科目_必修科目_総合':"2", '基礎科目_共通科目_必修科目_体育':"2", '基礎科目_共通科目_必修科目_情報':"4", '基礎科目_共通科目_必修科目_外国語':"4", '基礎科目_共通科目_選択科目_総合':"1~4", '自由':"0~9", "GB,GB":"0~9",'博物館':"0~9", '教職':'お好きに', '国語':"0~2", '基礎科目_関連科目_選択科目':"6~15"} | |
for data in datas: | |
# 専門科目_必修 | |
if re.compile("GC4.{4}").search(data['科目番号']): | |
results[results_keys[0]].append(data) | |
# 専門科目_選択 | |
elif re.compile("(GA4|GC5).{4}").search(data['科目番号']): | |
results[results_keys[1]].append(data) | |
# 専門基礎科目_必修 | |
elif re.compile("GC1.{4}|GA1[58].{3}").search(data['科目番号']): | |
results[results_keys[2]].append(data) | |
# 専門基礎科目_選択 | |
elif re.compile("GC2.{4}|GA1[12346790].{3}").search(data['科目番号']): | |
results[results_keys[3]].append(data) | |
# 基礎科目_共通科目_必修科目_総合 | |
elif re.compile("11[123].{4}|122[78].{3}").search(data['科目番号']): | |
results[results_keys[4]].append(data) | |
# 基礎科目_共通科目_必修科目_体育 | |
elif re.compile("6[145].{5}").search(data['科目番号']): | |
results[results_keys[5]].append(data) | |
# 基礎科目_共通科目_必修科目_情報 | |
elif re.compile("2[12].{5}").search(data['科目番号']): | |
results[results_keys[6]].append(data) | |
# 基礎科目_共通科目_必修科目_英語 | |
elif re.compile("31[HKJL]C.{3}").search(data['科目番号']): | |
results[results_keys[7]].append(data) | |
# 基礎科目_共通科目_選択科目_総合 | |
elif re.compile("1[24][134567890].{4}|1[24].[12345690].{3}").search(data['科目番号']): | |
results[results_keys[8]].append(data) | |
# 自由科目 | |
elif re.compile("8.{6}").search(data['科目番号']): | |
results[results_keys[9]].append(data) | |
# GB GE | |
elif re.compile("(GB|GE).{5}").search(data['科目番号']): | |
results[results_keys[10]].append(data) | |
# 博物館科目 | |
elif re.compile("99.{5}").search(data['科目番号']): | |
results[results_keys[11]].append(data) | |
# 教職科目 | |
elif re.compile("9[123456780].{5}").search(data['科目番号']): | |
results[results_keys[12]].append(data) | |
# 国語 | |
elif re.compile("5.{6}").search(data['科目番号']): | |
results[results_keys[13]].append(data) | |
# 基礎科目_関連科目_選択科目 (大学院などは考慮していない) | |
else: | |
results[results_keys[14]].append(data) | |
for key in results_keys: | |
print("--------------------") | |
print("--------------------") | |
print(key) | |
counter = 0 | |
for result in results[key]: | |
print("{} | {} | {}".format(result['科目番号'],result['科目名 '],result['単位数'])) | |
counter += float(result['単位数']) | |
print("Amount required for graduation : {}".format(required[key])) | |
print("Now you have : {}".format(counter)) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment