python

파이썬으로 파일 읽기/쓰기(2) - CSV 모듈 사용

햇농nongnong 2022. 4. 22. 16:56

(이 글은 '언어와정보처리' 과목에서 '파이썬 기초' 수업 내용을 정리한 글이다.)

 

pytorch 에 대해 들어가기 전, python 기초를 간단하게 리뷰하고 넘어가려한다.

 

 

앞의 포스팅에서 아래 예제를 풀었었는데, csv 모듈을 사용한 방법으로도 풀어보겠다.

 

예제)

grade.txt : 성적-점수 표 정보

student_list.txt : 학생별 성적 리스트

평균이 3.7이 넘는 학생에게는 장학금을 주려고 한다. 위 두 개의 텍스트 파일을 활용하여, 학생별로 누가 장학금을 받을 수 있는지 결과를 result.txt 라는 새 파일에 저장하시오.

result.txt 는 아래와 같이 각 줄이 (학생) : (장학금 여부) 형태로 되어 있어야 함.

 

Python : Scholarship!

Phaethon : No scholarship

Applepiethon : Scholarship!

 

import csv

grade_file = open('grade.txt', 'r')
grade_dic = {}
for grade in csv.reader(grade_file):
    grade_dic[grade[0]] = float(grade[1])
    
student_file = open('student_list.txt', 'r')
student_dic = {}
for student in csv.reader(student_file):
    student_dic[student[0]] = student[1:]
    
def scholarship(name):
    score = student_dic[name]
    total = sum(grade_dic[s] for s in score)
    avg = total / len(score)    
    if avg > 3.7:
        msg = "Scholarship!"
    else :
        msg = "No scholarship"
    return msg

result = open('result.txt', 'w')

for student in student_dic :
    result.write(student + ': ' + scholarship(student) + '\n')
    
result = open('result.txt', 'r')
print(result.read())
result.close()

 

결과 : 

Python : Scholarship!

Phaethon : No scholarship

Applepiethon : Scholarship!

 

  • 위의 예시처럼, csv 객체를 사용하면, text 파일로 문장을 처리 할 때 해야하는 콤마(,) 에 대한 전처리 과정을 생략해도 된다. 
  • csv reader 로 읽어서 파일 객체를 읽어들일 수 있다.