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 로 읽어서 파일 객체를 읽어들일 수 있다.