brunch

You can make anything
by writing

C.S.Lewis

by 박경아 Mar 23. 2021

12. 파일 읽고 쓰기

파이썬으로 데이터 분석하기

이번 글에서는 파이썬에서 작성한 내용을 txt 파일로 저장하거나, 반대로 txt 파일을 파이썬에서 읽고 쓰는 방법을 배워보고자 한다. 나는 파이썬 문법을 처음 배우면서 파일 읽기 쓰기를 공부할 때 텍스트, 엑셀, JSON 파일 종류에 따라 파이썬에서 읽고 쓰는 방법이 달라 조금씩 달라 짜증나고 헤맸던 경험이 있다. 

 

처음부터 모두 알 필요는 없다. 이번 글에서는 우선 파이썬에서 작성한 내용을 다른 포맷으로 저장하거나 다른 포맷으로 작성된 글을 파이썬에서 불러와 읽을 수 있다 정도로만 이해하면 될 것 같다. 그리고 텍스트 파일을 파이썬에서 읽고, 반대로 파이썬에서 작성한 내용을 텍스트 파일로 저장하는 연습을 한 번 해보는 것으로 하자.


참고로 다음에 나올 파이썬의 데이터 분석 라이브러리 ‘판다스’에서 엑셀 파일 등을 파이썬으로 불러오거나 파이썬으로 작성한 데이터를 최종적으로 엑셀(csv) 파일로 저장하는 법을 배우는데, 데이터 분석에서는 이 방법이 우선 많이 쓰일 것이다. 그 외에는 필요할 때 배워도 된다고 생각한다.



파일 쓰기


먼저 파이썬에서 내용을 쓰고 메모장으로 저장하는 연습을 해보자. 파이썬에서 외부파일을 열거나 만들 때는 with 구문을 사용한다. with를 사용하지 않아도 되는데 사용하지 않는 경우 파일 종료를 위해 f.close()를 마지막에 써줘야 오류가 생기지 않는다고 한다. with 구문을 사용하면 함수와 마찬가지로 콜론(:) 다음 내용이 자동으로 들여쓰기가 되고 들여쓰기가 끝나면 구문이 자동으로 끝나는 것으로 인식된다.


with open 이라는 문구는 파일 작성 혹은 읽기를 시작한다는 뜻이고, 경로는 저장하고 싶은 혹은 불러오고 싶은 내 컴퓨터 상의 파일 경로이다. 참고로 캐글 노트북에서 파일 읽기나 쓰기를 연습을 할 때는 파일 경로를 따로 적어줄 필요가 없다. 파일명은 적은 내용을 저장할 이름을 임의로 지으면 된다.


with open(‘경로/파일명’, ‘w’) as 파일핸들 변수:
    파일핸들.write(“ 내용 ”)


파이썬에서는 파일을 읽거나 쓰기 위해 파일을 열면 파일핸들이라는 객체(object)가 생성되는데, 실제 파일이 아니라 이 객체의 내용을 변경하게 된다. 파일핸들의 이름은 여느 변수와 마찬가지로 마음대로 지으면 된다. ‘w’는 쓰기 모드로 파일을 연다는 뜻이고, 콜론 아래 들여쓰기 부분에 파일핸들 변수에 .write 함수를 붙이고 쓰고 싶은 내용을 적으면 된다.

파이썬에서 텍스트 파일 쓰기

내용을 썼다면 코드 실행버튼을 눌러보자. 위 코드를 실행하면 캐글 노트북의 output 디렉토리 밑에 mytest.txt라는 새로운 파일이 생성된 것을 볼 수 있다. 다운로드 받아서 열어보면 메모장(txt) 형식으로 파일이 열린다.



파일 읽기


이번에는 반대로 이렇게 생성된 파일을 파이썬에서 읽어보자. 역시 with open이라는 구문과 함께 불러올 파일명을 적고, 이번에는 모드를 읽기모드 (‘r’)로 설정하자. 이 파일을 다룰 파일핸들의 이름은 역시 원하는 대로 지으면 된다.


파이썬은 파일을 읽는 방법을 세 가지를 지원하는데 첫 번째는 파일을 통째로 읽는 방식이다. 파일핸들 변수에 .read()라는 함수를 사용한다. 그리고 그 내용을 새로운 변수로 저장해 사용하는 방식이다.

파이썬에서 텍스트 파일 읽기 (1)


한 줄씩 읽고 싶다면 .readlines()를 사용하면 된다. 핸들파일 변수에 .readlines() 함수를 붙이면 텍스트 파일의 각 줄이 리스트의 요소로 출력된다.

 파이썬에서 텍스트 파일 읽기 (2)

세 번째 방법은 readline() 함수를 사용하는 방법이다. readline() 을 사용하면 한 줄만 출력한다. 아래 코드를 실행하면 텍스트 파일의 첫 줄만 출력될 것이다. 이 방법은 원하는 특정 줄만 새로운 변수로 저장하고 싶을 때 사용할 수 있을 것이다.

파이썬에서 텍스트 파일 읽기 (3)


내용 추가하기


마지막으로 파일에 새로운 내용을 추가하는 모드에 대해 알아보자. 파이썬은 쓰기모드(‘w’)로 열면 이미 내용이 존재하는 파일의 내용이 모두 사라지게 된다. 따라서 기존 내용을 유지하면서 마지막에 새로운 내용을 추가해야 할 경우 추가모드(‘a’)를 사용해야 한다.

파일 내용 추가하기




* 참고자료

캐글 강의 https://www.kaggle.com/learn/overview

점프투파이썬 https://wikidocs.net/book/1

파이썬 초보 학습자를 위한 4시간에 배우는 파이썬 기초문법

https://joshua-mobile-choi-1756.trinket.io/python-3-4#/tasks/task-1-print-statement

How to think like a computer scientist : Learning with Python 3

http://openbookproject.net/thinkcs/python/english3e/  

매거진의 이전글 11. 조건문과 반복문 쓰기
작품 선택
키워드 선택 0 / 3 0
댓글여부
afliean
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari