r
파이썬에서 open()
메서드를 이용해 외부 파일을 열 수 있습니다.
open 모드 중 "r" 은 선택한 파일을 읽기용으로 열때 사용합니다.
"r" 모드에서는 read()
,readline()
,readlines()
등의 메서드를 사용할 수 있습니다.
1. read()
1-1. read() 메서드는 오픈한 파일의 모든 내용을 읽어와 저장합니다.
예를 들어, 아래의 내용이 담긴 sample.txt 라는 이름의 파일이 있습니다.
사과주스 1잔 1,000원
배주스 1잔 2,000원
수박주스 1잔 3,000원
sample.txt 파일을 읽기 모드로 연 다음, file_obj라는 변수에 저장합니다. 그리고 file_obj 변수에 저장한 파일의 내용을 read() 함수로 읽어와 변수 x에 저장합니다. 마지막으로, 변수 x를 출력하고, 변수 x의 타입을 출력합니다.
file_obj = open("sample.txt", "r", encoding="utf8")
x = file_obj.read()
print(x)
print("----------------------")
print(type(x))
file_obj.close()
출력 결과는 다음과 같습니다.
사과주스 1잔 1,000원
배주스 1잔 2,000원
수박주스 1잔 3,000원
----------------------
<class 'str'>
1-2.
2. readline()
2-1. readline()
은 오픈한 파일의 내용 중 첫번째 라인, 딱 한 줄만 읽어 옵니다. 그리고 커서는 그 다음 줄로 이동합니다.
예제 들어, 위의 simple.txt 파일을 readline() 함수로 읽어오면 다음과 같습니다.
file_obj = open("sample.txt", "r", encoding="utf8")
print(file_obj.readline())
print("----------------------")
print(type(file_obj.readline()))
file_obj.close()
출력 결과는 다음과 같습니다.
사과주스 1잔 1,000원
----------------------
<class 'str'>
2-2. readline() 함수를 두번 연달아 실행하면 첫번째 실행때는 첫번째 줄이, 두번째 실행때는 두번째 줄이 출력됩니다. 첫 번째 실행 후 커서가 그 다음 줄로 이동해 있기때문입니다.
예제
file_obj = open("sample.txt", "r", encoding="utf8")
print("----------------------")
print(file_obj.readline())
print(file_obj.readline())
print("----------------------")
file_obj.close()
출력 결과는 다음과 같습니다.
----------------------
사과주스 1잔 1,000원
배주스 1잔 2,000원
----------------------
3. readlines()
3-1. readlines()
은 오픈한 파일의 내용을 한줄 씩 모두 불러와 리스트 list 형태에 저장합니다.
예를 들어, 첫 번째 줄은 index 0에, 두 번째 줄은 index 1에, 세 번째 줄은 index 2에 이런 식으로 줄단위로 나누어 리스트로 저장합니다.
예제.
위의 simple.txt 파일을 readlines() 함수로 불러오면 다음과 같습니다.
file_obj = open("sample.txt", "r", encoding="utf8")
x = file_obj.readlines()
print(x)
print("----------------------")
print(type(x))
file_obj.close()
출력 결과는 다음과 같습니다.
['사과주스 1잔 1,000원\n', '배주스 1잔 2,000원\n', '수박주스 1잔 3,000원']
----------------------
<class 'list'>
3-2. index 번호를 이용해 특정 줄만 출력할 수 있습니다.
예제
file_obj = open("sample.txt", "r", encoding="utf8")
x = file_obj.readlines()[1]
print("----------------------")
print(x)
print("----------------------")
file_obj.close()
출력 결과는 다음과 같습니다.
----------------------
배주스 1잔 2,000원
----------------------
3-3. 리스트를 for 루프를 이용해 출력할 수도 있습니다.
예제
file_obj = open("sample.txt", "r", encoding="utf8")
x = file_obj.readlines()
for menu in x :
print("----------------------")
print(menu)
file_obj.close()
출력 결과는 다음과 같습니다.
----------------------
사과주스 1잔 1,000원
----------------------
배주스 1잔 2,000원
----------------------
수박주스 1잔 3,000원