[패스트캠퍼스python] 파일 읽기
파이썬 인강 : 파일 읽기
txt파일로 읽거나 쓸 줄 알아야 어플리케이션을 만들었을때 중요한 데이터(결과값)을 저장해놓을 수 있다
- 읽기 모드 r
- 쓰기 모드 w : 기존 파일 삭제
- 추가 모드 a : 파일 생성 또는 추가
- 상대 경로(‘../‘, ‘./‘)
- 절대 경로 확인(‘C:...’)
중요한 데이터.txt
파일을을 어떻게 읽을 수 있을까?
1. open()과 close() 방법
파일을 열때는 open()을 사용하고 읽어올 것이기때문에 r을 쓰면 된다
open()했으면 반드시 close 리소스 반환해줘야한다. 즉 close()로 꼭 문 닫아줘야한다.
한 번 사용한 리소스를 꼭 닫아줘야한다.
1 | f = open('./resource/중요데이터.txt', 'r') |
2. with open()방법
파이썬에서는 open()해놓고 close()는 하지않아도 되는 방법이 있다
바로 with문!
1 | with open('./resource/중요한데이터.txt', 'r') as f: |
read는 전체 내용 읽어준다 ex) read(10) : 10글자 읽기
3. with문과 for문 활용
1 | with open('./resource/중요한데이터.txt', 'r') as f: |
출력값을 보면 한 줄씩(line단위) 출력해준다
한줄씩 뛰어쓰기되어 나오는 것은 끝에 |n
이 들어가있기때문이다
제거해주려면 어떻게 하면 될까?
1 | with open('./resource/중요한데이터.txt', 'r') as f: |
|n
을 strip()으로 제거해주면 가독성 좋게 출력된다
위의 출력이미지와 아래의 출력이미지를 보면 가독성이 좋아진 것을 알 수 있다
4. read VS readline VS readline(문자수) VS readlines
- read : 처음글자부터 끝까지 전체를 다 읽기. read()가 끝나고 나면 커서가 맨 마지막 글자에 있기때문에 한번 출력 후 read()를 또 출력하면 빈 내용이 출력된다
- readline : 한 줄씩 읽기
- readline(문자수) : 문자수 읽기
- readlines : 전체 읽은 후 라인 단위 리스트 저장
응용한 예시를 함께보자
아래 이미지파일과 같은 score.txt파일이 있고 안의 내용의 평균을 for line in으로 구해보자
1 | with open('./resource/score.txt', 'r') as f: |
5. 파일 쓰기
- 빌트인패키지인 random을 이용해서 파일을 써보자
로또번호와 비슷하게 6개 랜덤번호를 출력하는 예제이다.
1 | from random import randint |
writelines : 리스트 -> 파일로 저장
1
2
3with open('test3.txt', 'w') as f:
list = ['Kim\n', 'Park\n', 'Lee\n']
f.writelines(list)print로 바로 저장하는 예제이다
1
2
3with open('./resource/test3.txt', 'w') as f:
print('Test Contents!', file=f)
print('Test Contents!!', file=f)