개요
이번 글에서는 파이썬 표준 라이브러리에 내장되어 있는 함수를 이용하여 텍스트 파일을 읽고 쓰는 방법에 대해서 정리해 둡니다.
파이썬 표준 라이브러리 내장 함수를 이용하기 때문에 별도의 패키지를 import 할 필요 없이 코드를 작성하여 실행할 수 있는 장점이 있습니다.
텍스트 파일 읽어오기
텍스트 파일을 열어서 파일 내의 내용을 읽어오기 위하여 "open()" 함수를 이용합니다.
open(file, mode='r', buffering=- 1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
"open()" 함수의 mode 매개변수에 텍스트 모드('w', 'r', 'wt', 'rt', 등)로 파일을 열면, io.TextIOBase 클래스 인스턴스가 반환됩니다. 반환된 객체를 통하여 파일 내의 텍스트를 읽을 수 있습니다.
다음은 간단하게 파일을 열고, 파일 내의 모든 텍스트를 읽어오는 예제입니다.
data_str = ''
with open('./demo/data1.csv', 'r') as text_file:
data_str = text_file.read()
text_file.close()
텍스트 파일 쓰기
파일에 텍스트 내용을 쓰기 위해서도 "open()" 함수를 이용합니다. 단지 mode 매개변수에 ('w', 'w+', 'wt' 등)으로 파일을 엽니다.
다음은 open() 함수 호출 시, mode 매개변수에 따라 반환되는 인스턴스의 차이를 보여줍니다.
>>> wf = open('test.txt', 'w+t')
>>> type(wf)
<class '_io.TextIOWrapper'>
>>> wf.close()
>>> wf = open('test.txt', 'w')
>>> type(wf)
<class '_io.TextIOWrapper'>
>>> wf.close()
>>> wf = open('test.txt', 'w+')
>>> type(wf)
<class '_io.TextIOWrapper'>
>>> wf.close()
>>> wf = open('test.txt', 'w+b')
>>> type(wf)
<class '_io.BufferedRandom'>
>>> wf.close()
mode 매개변수에 따라서 파일을 새로만들지 결정되는데, "w+", "w+t" 등과 같이 "+" (append)가 추가되어 있어야만 현재 파일의 마지막부터 추가로 쓰게 됩니다.
open() 함수로 연 텍스트 파일에 대하여 반환되는 TextIOWrapper 인스턴스를 이용하여 텍스트를 파일에 쓸 수 있습니다. 텍스트를 쓸 때는 write()나 writelines() 등의 함수를 이용할 수 있습니다.
다음은 간단하게 주어진 텍스트를 파일로 쓰는 에제입니다.
data_str = '파일에 텍스트 쓰기 예제'
with open('text_write_demo.txt', 'w') as text_file:
text_file.write(data_str)
text_file.close()
참고자료
- "파이썬 텍스트(txt) 파일 읽기 방법 정리(for문, read, readline, readlines)":https://jimmy-ai.tistory.com/232
- "파이썬 표준 라이브러리 - 내장 함수":https://docs.python.org/ko/3/library/functions.html
- "io — 스트림 작업을 위한 핵심 도구":https://docs.python.org/ko/3/library/io.html
'프로그래밍 > Python' 카테고리의 다른 글
[Python] OpenCV 버전 및 패키지 설치 위치 확인 방법 (0) | 2022.04.04 |
---|---|
[Python] 변수 할당 (0) | 2022.02.11 |
[Python] 파일 확장자 분리하기 (0) | 2022.01.09 |
[Python] OpenCV를 활용한 카메라 영상 저장 - 1 (0) | 2022.01.08 |
[Python] OpenCV를 활용한 카메라 영상 출력 - 2(FPS 표시) (0) | 2022.01.05 |