35. 파이썬 – 파일 읽고 쓰기(내용 쓰기.파일 읽기)

  • 카카오톡 공유하기
  • 네이버 블로그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 트위터 공유하기
  • 스레드 공유하기

이전 공부 내용에서는 파일을 생성하는 것 까지 진행을 해보았습니다.

이번에는 생성된 파일을 쓰기 모드로 열어 내용 쓰기에 대해 공부해 보겠습니다

👇 파이썬 파일 상세 내용 확인하기 👇

파이썬 파일 자세히 알아보기
파이썬 파일 관련 글 더보기

파이썬 입출력

파일 읽고 쓰기

쓰기 모드로 파일을 열고 내용 쓰기

이전 포스팅에서는 파일을 쓰기 모드로 열어보는 것을 해봤습니다. 그 안에 내용은 쓰지 않았죠.
이번에는 문자열을 파일에 쓰는 것을 해보겠습니다.

Python
# write_test.py
file = open(r"d:\test\신규파일.txt", 'w')
for i in range(1, 11):
    text = "%d 번째 줄 입니다.\n" % i
    file.write(text)
file.close()

위에 코드를 실행하고 해당 경로로 가서 파일을 열어보면 아래처럼 결과가 나옵니다.

Python
1 번째 줄 입니다.
2 번째 줄 입니다.
3 번째 줄 입니다.
4 번째 줄 입니다.
5 번째 줄 입니다.
6 번째 줄 입니다.
7 번째 줄 입니다.
8 번째 줄 입니다.
9 번째 줄 입니다.
10 번째 줄 입니다.

다른 코드를 살펴보겠습니다.

Python
for i in range(1, 11):
    data = "%d 번째 줄 입니다.\n" % i
    print(data)

위 코드의 결과는 아래와 같습니다.

Python
1 번째 줄 입니다.

2 번째 줄 입니다.

3 번째 줄 입니다.

4 번째 줄 입니다.

5 번째 줄 입니다.

6 번째 줄 입니다.

7 번째 줄 입니다.

8 번째 줄 입니다.

9 번째 줄 입니다.

10 번째 줄 입니다.

앞서 open을 사용해 쓰기모드에서 내용을 쓴 코드와 그 다음 print 문으로 출력한 코드의 차이점은 data 를 출력하는 방식입니다.
두 번째 방식은 이전에 계속 진행했었던 모니터 화면에 출력하는 방식이고,
첫 번째 방식은 모니터 화면대신 생성한 파일에 쓰기모드로 열어 데이터를 입력하는 방식입니다.
print 대신 파일 객체인 file 의 write 함수를 사용한 것 말고는 차이가 거의 없습니다.

그리고 똑같이 줄바꿈을 해줬는데 write 함수를 썼을 때는 정상적으로 한번의 줄바꿈으로 표현이 되어 있는데 print 문을 썼을 때는 for 문으로 반복해서 진행을 하다 보니 줄바꿈이 한번 더 표현이 된 듯 합니다.

파일 읽기의 여러 가지 방법

파일을 읽는 방법에는 여러가지가 있습니다.

readline 함수 이용

먼저 reading 함수를 사용하는 방법에 대해 알아보겠습니다.

Python
# reading_test.py
file = open(r"d:\test\신규파일.txt", 'r')
line = file.readline()
print(line)
file.close()

위 코드를 보면 신규파일.txt 를 읽기모드 ‘r’ 로 파일을 열고 readline() 명령을 사용해서 해당 파일의 첫 번째 줄을 읽어 화면에 보여주는 기능을 하고 있습니다.
기존에 만들어 놨던 신규 파일이 그대로 있으면 그 파일의 첫 번째 줄을 화면에 출력합니다.

Python
1 번째 줄 입니다.
readlines 함수 이용

여기서 만약 첫 번째 줄만이 아니라 전체 줄을 화면에 출력하려면 어떻게 할까요?

Python
# reading_all_test.py
file = open(r"d:\test\신규파일.txt", 'r')
while True:
    line = file.readlines()
    if not line: break
    print(line)
file.close()

위 코드를 실행해 보면 이전에 print 문으로 출력 했던 것과 동일하게 나오는 것을 확인 할 수 있습니다.

Python
['1 번째 줄 입니다.\n', '2 번째 줄 입니다.\n', '3 번째 줄 입니다.\n', '4 번째 줄 입니다.\n', '5 번째 줄 입니다.\n', '6 번째 줄 입니다.\n', '7 번째 줄 입니다.\n', '8 번째 줄 입니다.\n', '9 번째 줄 입니다.\n', '10 번째 줄 입니다.\n']

readlines 함수를 사용하면 파일의 모든 줄을 읽어서 하나의 줄 씩 리스트 요소로 가지고 있게 됩니다.
직전에 사용했던 readline 함수와 차이점은 끝에 ‘s’ 가 하나 더 붙어 있다는 걸 유의해야 할 듯 합니다.

다음 포스팅에서는 파일 읽기의 여러가지 방법에 대해 좀 더 알아보겠습니다.

  • 이 포스팅은 ‘위키독스’ 의 ‘점프 투 파이썬‘ 전자책을 구매하여 독학하기 위한 자료로 작성했습니다.
파이썬 파일 핵심 정보 바로가기