파일 목록
# 11주차
scores = {} #점수 딕셔너리 생성
with open("c:/Users/-/Desktop/py_Project/list.txt", 'r') as f:
while True :
line = f.readline()
if not line :
break
data = line.strip().split(',')
if len(data) == 4 :
scores[data[0]] = [int(data[1]), int(data[2]), int(data[3])]
avg = (int(data[1])+int(data[2])+int(data[3])) / 3
print(data[0], scores[data[0]], f"평균 = {avg}")
"""
# 수업 방법
import os
path_name = "c:/-/"
full_filename = path_name + "/list.txt"
if nont os.path.isfile(full_filename) : #os모듈이 파일 체크해줌
print("파일이 존재하지 않음")
else :
pass
students = []
with open(full_filename, 'r') as f:
#r.readline() -> 한줄씩 r.readlines() -> 전체 불러와서 한줄씩 r.read() 한단어 굳이?
while True :
line = f.readline().strip() #"ksh, 10, 20, 30"
if not line:
break
#"ksh, 10, 20, 30"
line.split(",") #['ksh', '10', '20', '30'] = stroke
if len(datas) != 4:
continue
try :
stu = {}
stu['name'] = datas[0].strip()
stu['kor'] = int(datas[1])
stu['eng'] = int(datas[2])
stu['mat'] = int(datas[3])
#점수값이 이상하게 나온 경우 처리방법은 나오게 할 것 여기서는 가장 편한 방법 진행
students.append(stu) #리스트에 딕셔너리를 취가 -> 반대는 불가능
except :
pass
for stu in students:
#avg = sum([stu['kor'], stu['eng'],stu['mat']])/3 -> 과목 추가시 식이 바뀜 pass
summary = [stu[key] for key in stu.keys() if key != 'name']
avg = sum(summary) / len(summary)
#출력도 for문으로
sub = [ str(stu[key]) for key in stu.keys()] #다 문자ㅣ열로 만들어버림
line = ",".join + f" 평균={avg:.2f}"
print(line)
"""