성장일기/파이썬

[파이썬] 파일 데이터 한줄씩 읽고 합하고 평균구하기, read().splitlines()

지추월자 2020. 10. 14. 08:10
반응형

sample이라는 파일을 읽고 한줄씩 문자열로 읽어내린다음에 그 값을 다시 data라는 리스트에 넣어준다. 

read()는 문자열로 반환해주기 때문에 합산을 구할때는 int로 치환을해서 정수형으로 계산을해준다. 

f= open('sample.txt','r')
lines = f.read().splitlines() #한줄씩 문자열 읽기 
data = []
sum=0

for line in lines:
    data.append(line)

for i in range(0,len(data)):
    sum += int(data[i])

avg = sum/len(data)
print(data)
print(sum)
print(avg)

f.close()

여기서 평균의 값을 새로운 파일에 저장하는 코드를 추가하게되면 아래와 같이 쓸수있다.


f= open('sample.txt','r')
lines = f.read().splitlines() #한줄씩 문자열 읽기
data = []
sum=0

for line in lines:
    data.append(line)

for i in range(0,len(data)):
    sum += int(data[i])

avg = sum/len(data)
f.close()

f2 = open('avg_result.txt','w')
f2.write(str(avg))
f2.close()

새로운 파일을 열어서 데이터를 쓸 때는 항상 str 형태로 써야하기때문에 int 데이터는 str로 치환해서 데이터를 삽입해준다.

lines=f.readlines()

for line in lines:
    score=int(line)

readlines가 이미 모든 데이터를 줄 단위로 읽어주는 역할을해서 굳이 위의 for문을 돌리지 않아도될것 같다.

데이터를 받아온 값들을 int로 변환만 해주면 숫자형으로 변환도 되기때문에 더욱 간편한 코드를 사용할 수 있을 것 같다.

반응형