본문 바로가기
프로그램

[파이썬] 문제 : text 파일을 읽어서 성적 출력 하기

by 오디세이99 2023. 11. 24.
728x90
반응형

sungjuk.txt
0.00MB

홍길동 100 80 70
김유신 85 80 90
최영호 70 90 100
유관순  85 85 85
강감찬 90 90 90

[실행 결과]
이름    국어  영어  수학
======  ==== ==== ====
홍길동    100  80   70
김유신    90   80   85
최영호    70   90   100
유관순   85   85   85
강감찬    90   90   90

 

f = open('sungjuk.txt','r',encoding='UTF-8')   # 파일 읽기용으로 열기. encoding은 문자셋에 따라 다름.
Lines = f.readlines()           # 파일 읽기

data = []                       # 파일의 데이터를 저장할 리스트
for line in Lines:              # 파일의 라인만큼 반복
    # print(line)    
    tmp = line.split()          # 공백으로 분리해서 리스트로 만듬
    for j in range(1,len(tmp)): # 라인의 공백으로 분리한 데이터 중 정수 데이터를 문자열에서 정수로 변경
        tmp[j] = int(tmp[j])    # 이름외에 성적은 정수 int() 로 변환
    data.append(tmp)            # 리인데이터 tmp 를 전체 데이터 data에 추가
    
f.close()

''' 위 코드가 실행되면 아래와 같이 data가 만들어짐
[['홍길동', 100, 80, 70], 
 ['김유신', 85, 80, 90], 
 ['최영호', 70, 90, 100], 
 ['유관순', 85, 85, 85], 
 ['강감찬', 90, 90, 90]]
'''
print('이름   국어 영어 수학')
print('====== ==== ==== ====')
for i in range(len(data)):       # 출력 양식에 맞도록 출력
    # print(data[i][0],data[i][1],data[i][2],data[i][3])
    for v in data[i]:            # 위와 같이 print() 코드 할 수 있으나 다음과 같이 반복문으로 출력
        print(f"{v}  ",end='')
    print()

728x90
반응형

댓글