# 파일 읽고 쓰기 — with 한 줄이면 닫는 걸 잊을 일이 없습니다
# 한글이 들어가면 encoding="utf-8" 을 반드시 적으세요.

명단 = ["김서연", "이준호", "박민지"]

# 쓰기 "w" — 주의: 여는 순간 기존 내용이 지워집니다
with open("명단.txt", "w", encoding="utf-8") as f:
    for 이름 in 명단:
        f.write(이름 + "\n")      # 줄바꿈은 직접 붙여야 합니다

# 이어 붙이기 "a" — 기존 내용을 두고 뒤에 씁니다
with open("명단.txt", "a", encoding="utf-8") as f:
    f.write("최유진\n")

# 읽기 "r" — 파일도 "여러 줄이 든 것" 이라 for 에 그대로 넣습니다
with open("명단.txt", "r", encoding="utf-8") as f:
    for 줄 in f:
        print(줄.strip())          # 줄 끝 줄바꿈을 떼어냅니다

# 통째로 한 번에 읽기
with open("명단.txt", "r", encoding="utf-8") as f:
    전체 = f.read()
print("글자 수:", len(전체))

# 리스트로 받기
with open("명단.txt", "r", encoding="utf-8") as f:
    줄들 = [줄.strip() for 줄 in f]
print(줄들)

# 없는 파일을 읽으면 오류가 납니다. 미리 막아 두는 방법.
try:
    with open("없는파일.txt", "r", encoding="utf-8") as f:
        print(f.read())
except FileNotFoundError:
    print("그런 파일이 없습니다.")

# 실전 — 점수를 계산해 결과를 파일로 남기기
점수 = {"김서연": 90, "이준호": 85, "박민지": 77}
with open("성적표.txt", "w", encoding="utf-8") as f:
    f.write("이름\t점수\t학점\n")
    for 이름, 값 in 점수.items():
        학점 = "A" if 값 >= 90 else "B" if 값 >= 80 else "C"
        f.write(이름 + "\t" + str(값) + "\t" + 학점 + "\n")
print("성적표.txt 를 만들었습니다.")
