반응형
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에서 읽을 때 포인터가 마지막 부분을 가리키기 때문이라고 합니다.
반응형
댓글