표 형태의 텍스트 데이터를 안전하게 읽고 씁니다.
csv 모듈은 쉼표 안의 따옴표와 줄바꿈 규칙을 직접 split하는 실수 없이 처리합니다. DictReader와 DictWriter를 사용하면 열 위치 대신 헤더 이름으로 데이터를 읽을 수 있습니다.
StringIO가 문자열을 파일처럼 다루게 해 주므로 csv.DictReader는 첫 줄 name,score를 헤더로 읽고 나머지 행을 딕셔너리로 만듭니다. score 값은 문자열이라 int로 바꿔 더한 뒤 행 수로 나누고, (88 + 95 + 72) / 3인 85.0이 평균으로 출력됩니다.
파일을 열 때 newline=''를 사용하면 플랫폼별 빈 줄 문제를 피할 수 있습니다. 숫자는 읽은 뒤 문자열이므로 명시적으로 변환하고 잘못된 행을 처리합니다.
대용량 CSV는 전체를 리스트로 만들지 말고 행 단위로 처리하며 열 수, 파일 크기, 수식 삽입 같은 입력 위험도 제한합니다.
line.split(',')는 값 자체에 쉼표나 따옴표가 있을 때 올바르게 파싱하지 못합니다.
직접 바꿔보세요각 행에 pass 여부를 계산하고 합격자 이름만 출력하세요.
실행 버튼을 누르면 결과가 여기에 표시됩니다.