본문 바로가기
머신러닝을 위한 파이썬 기초/텍스트에서 문자 읽기

파이썬으로 텍스트 읽는 방법 (문장단위, 줄단위)

by bigpicture 2024. 7. 1.
반응형

mytext.txt 라는 파일이 있다고 합시다. 여러 줄의 내용이 적혀 있는 텍스트 파일 입니다. 내용은 숫자도 있고 문자도 있습니다. 내용은 아래와 같습니다. 

 

파이썬에서 이 파일의 내용을 불러오기 위해서 먼저 이 파일을 열어줘야 합니다. 

일단 코드를 봅시다. 

file_path='C:/documents/myfile.txt'
file_opened=open(file_path, 'r')


myfile.txt 라는 파일을 열었습니다. r은 read 를 의미합니다. 

'읽기 위해 열었다' 

정도로 생각하면 됩니다. 

이제 내용을 가져오겠습니다. 내용을 가져오는 방법은 두 가지가 있습니다. 전체 내용을 문자열로 가져오는 방법과, 각 줄을 리스트 원소로 가져오는 방법입니다. 

 

1) 전체 내용을 문자열로 가져오기

read 메소드를 사용합니다. 

content=file_opened.read()



content 에 저장된 정보는 아래와 같습니다. 

>>> content
'hello, I am james\nI am 16 years old'



모든 내용이 하나의 문자열로 저장되었습니다. \n 은 개행(enter)를 뜻합니다. 

 

2) 각 줄을 리스트 원소로 가져오기

readlines 메소드를 사용합니다. 

content=file_opened.readlines()

>>> content
['hello, I am james\n', 'I am 16 years old']

 


3) 주의사항1 (close 를 반드시 할 것)

open 을 하고 난 뒤에는 반드시 close 를 해줘야 합니다. 우리가 어떤 파일을 열고 사용한 뒤에 종료하는 것과 비슷합니다. 열고 닫지 않으면 다른 곳에서 사용할 수 없습니다. 

닫는 방법은 아래와 같습니다. 

file_opened.close()



이 과정이 번거롭다면 with 문을 쓰면 됩니다. with 문은 해당 문장을 벗어날 때 close 를 자동으로 호출합니다. 

with open(file_path, 'r') as file:
         content = file.readlines()

 

 

4) 주의사항2 (read 와 readlines 를 연달아 쓸 수 없음)

아래 코드를 봅시다. 

file_opened=open(file_path, 'r')

content1=file_opened.read()
content2=file_opened.readlines()


아래와 같이 불러올 경우 content2 에는 아무 내용도 저장되지 않습니다. content 1에서 읽을 때 포인터가 마지막 부분을 가리키기 때문이라고 합니다. 







반응형

댓글