오늘은 txt 파일은 읽고 수정하고 사용하는 방법을 공부했다.
f = open("data.txt",'w')
f.write("23.0 \n51.0 \n68.5 \n82.9 \n103.2 ")
//data.txt file을 열고 원하는 숫자를 입력
f = open("data.txt",'r')
r = f.readlines()
r = list(map(lambda s : float(s.strip()),r))
sum = 0
for num in r:
sum += num
file = open("output.txt","w")
file.write(f"합계 = {sum} \n평균 = {sum/len(r)}")
file.close()
f = open("output.txt",'r')
print(f.read())
- readlines() 메소드
텍스트 파일을 한 줄 한 줄 읽고 list에 str 형식으로 저장한다.
- map() 메소드
map( 함수, iterable 자료형 ) 의 형식으로 사용한다.
iterable 자료형을 입력 받아 각각의 요소들을 함수에 의해 수행된 결과를 묶어서 리턴하는 메소드이다.
- strip() 메소드
strip(삭제할문자) 의 형식으로 사용한다.
삭제할 문자를 blank로 둘 경우 str 자료형의 앞 뒤에 있는 스페이스, 탭, 개행문자 (\n) 등의 blank 문자를 삭제한다.
위의 개념을 활용하여 txt file을 읽어들이고 공백을 제거하는 방법을 알아보자
1) f = open("data.txt",'r')
2) r = f.readlines()
3) r = list(map(lambda s : float(s.strip()),r))
1) data.txt파일을 읽기 모드로 open 한다.
2) r은 readlines 메소드를 통해 data.txt 파일의 한 줄 한 줄의 값을 list 자료형으로 저장한다.
3-1) map() 메소드에서 iterable한 자료 r의 요소를 함수에 입력한다
3-2) map() 메소드의 함수는 lambda s : float(s.strip()) 으로 이는 r의 요소를 입력 받아 strip()메소드를 통해 앞 뒤에 공백문자들을 지운 후 그 값을 return 한다.
3-3) 함수에 나온 값을 map() 메소드를 이용하여 하나의 결과로 묶고 list() 메소드를 통해 그 결과를 list 자료형으로 return 한다.
실행 결과 )
[23.0, 51.0, 68.5, 82.9, 103.2]의 값이 r에 저장된다. 그리고 이때 숫자들은 str 자료형이 아닌 float 자료형으로 저장되어 있다.
각 line에 저장되있는 값을 위와 같은 방법으로 읽어들여와 사용할 수 있다.
'Algorithm & Data Structure' 카테고리의 다른 글
[백준] 구간성분(10840번) - 해싱 (0) | 2022.10.10 |
---|---|
[Today I Learned] 알고리즘 기초와 배열 (0) | 2022.09.28 |
[백준] 그룹단어체커 (1316번) - Python (1) | 2022.09.28 |
for문 사용시에 list 자료형과, set 자료형의 차이 (0) | 2022.09.17 |
[제어문] 친화수, 완전수 구하기 (4) | 2022.09.14 |