본문 바로가기
인공지능(AI) 개발/Python

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

by Jaeseok_Shim 2020. 4. 21.

파이썬에서 파일을 읽고 쓰는 방법은 다양하다.

 

  • open() 함수를 이용
  • Numpy 패키지의 loadtxt(), writetxt() 이용
  • Pandas 패키지의 read_csv(), to_csv() 이용

 

데이터 분석을 위해서는 csv 파일을 이용하는 경우 pandas를 이용하고 텍스트 파일인 경우 open() 함수를 이용하면 좋을 것이다. 여기서는 open() 함수를 이용한 텍스트 파일(txt)을 읽고 쓰는 것을 정리한다.

1. 파일 쓰기

open() 함수을 이용하여 파일을 읽고 쓸 수 있다. open() 함수가 궁금하면 아래처럼 함수이름에 물음표(?)를 이용하면 함수의 프로토타입(Prototype, Docstring)을 확인해보자.

open() 함수에서 mode='w'로 두어 파일을 생성하고

write()로 텍스트 내용을 쓴 다음

close()로 종료해야 한다.

 

open 함수 인자 중 파일명(file), 파일모드(mode), 인코딩(encoding)은 알아두어야 한다.

# 파일객체 생성
file = open('poem.txt', 'w')

# 파일 쓰기
file.write('서시\n')
file.write('\n')
file.write('죽는 날까지 하늘을 우러러\n')
file.write('한점 부끄럼이 없기를,\n')
file.write('잎새에 이는 바람에도\n')
file.write('나는 괴로워했다.\n')
file.write('별을 노래하는 마음으로\n')
file.write('모든 죽어가는 것을 사랑해야지\n')
file.write('그리고 나한테 주어진 길을\n')
file.write('걸어가야겠다.\n')
file.write('\n')
file.write('오늘밤에도 별이 바람에 스치운다.\n')

# 파일 닫기
file.close()

2. 파일 읽기

write() 함수 대신 read() 함수로 파일을 읽을 수 있다.

# 파일객체 생성
file = open('poem.txt', 'r')

# 파일 전체 읽기
data = file.read()
print(data)

# 파일 닫기
file.close()

위 소소를 실행하면 아래와 같이 출력된다.

서시

죽는 날까지 하늘을 우러러
한점 부끄럼이 없기를,
잎새에 이는 바람에도
나는 괴로워했다.
별을 노래하는 마음으로
모든 죽어가는 것을 사랑해야지
그리고 나한테 주어진 길을
걸어가야겠다.

오늘밤에도 별이 바람에 스치운다.

파일을 1라인씩 읽으려면 readline(), readlines()을 이용할 수 있는데, readlines()는 파일내용을 리스트 형태로 반환한다.

file = open('poem.txt', 'r')

data = file.readlines()
print(data)

file.close()

출력결과.

['서시\n', '\n', '죽는 날까지 하늘을 우러러\n', '한점 부끄럼이 없기를,\n', '잎새에 이는 바람에도\n', '나는 괴로워했다.\n', '별을 노래하는 마음으로\n', '모든 죽어가는 것을 사랑해야지\n', '그리고 나한테 주어진 길을\n', '걸어가야겠다.\n', '\n', '오늘밤에도 별이 바람에 스치운다.']

3. 파일 읽기(with 절을 이용)

with 절을 이용하여 파일을 읽고쓰면 close()를 호출하지 않아도 된다.

file_name = 'poem.txt'

with open(file_name) as file:
    line = file.read()
    print(line)

출력결과.

서시

죽는 날까지 하늘을 우러러
한점 부끄럼이 없기를,
잎새에 이는 바람에도
나는 괴로워했다.
별을 노래하는 마음으로
모든 죽어가는 것을 사랑해야지
그리고 나한테 주어진 길을
걸어가야겠다.

오늘밤에도 별이 바람에 스치운다.

댓글