본문 바로가기
Python

[Python 기초] 파이썬 파일 다루기 - 읽기 : read(), readline(), readlines()

by dev수니 2021. 4. 5.
반응형

 

 

 

 1  읽기모드

 

 

읽기모드의 경우 모드명을 다음과 같이 'r'로 작성해준다. (읽기모드의 경우 모드의 작성을 생략해줘도 상관없다.)

 

객체 = open("파일경로.확장자명",'r')    # 읽기모드

 

읽기모드에서 데이터의 내용을 읽어오는 함수들이 있다. 함수의 종류는 다음과 같다.

 

1. readline() : 파일의 문장 한 라인을 읽어 문자열로 반환한다.
2. readlines() : 파일의 모든 라인을 읽어서 각각의 요소를 갖는 리스트로 반환한다.
3. read() : 파일의 내용 전체문자열로 반환한다.
4. read(숫자) : 데이터를 글자수 만큼 읽어온다.

 

 


 

다음 예제는 readline() 을 사용한 예제이다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 파일을 텍스트 파일로 저장(출력)
= open("MyTestFile.txt",'wt')     # w:쓰기모드
 
for i in range(1,101):
     data = "%d번째 줄 입니다.\n"%i
     f.write(data)
 
f.close()
 
# readline() : 문장 한라인을 읽어준다.
input1 = open("MyTestFile.txt",'rt')     # r:읽기모드
for i in range(100):
     data = input1.readline()
     print(data,end="")
 
f.close()
cs

 

 

위 파일을 run하면 다음과 같이 MyTestFile.txt 파일과 shell 창에 1부터 100까지 출력된 모습을 확인할 수 있다.

 

 

 

 


 

 

다음 예제는 위 예제에서 파일을 읽어오는 함수만 read() 로 변경한 예제이다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 파일을 텍스트 파일로 저장(출력)
= open("MyTestFile.txt",'wt')     # w:쓰기모드
 
for i in range(1,101):
     data = "%d번째 줄 입니다.\n"%i
     f.write(data)
 
f.close()
 
# read() : 파일 전체 문장을 한번에 문자열로 처리한다. 
input1 = open("MyTestFile.txt",'rt')     # r:읽기모드
print(input1.read())
 
f.close()
cs

 

 

이를 run하면 Shell창에 Squeezed text (100 lines). 라고 네모박스가 뜨는데 이는 데이터가 많아서 뜨는 것으로 더블클릭하면 출력된다.

 

 


 

 

다음과 같이 read(숫자) 를 이용하여 데이터를 지정한 글자수만큼 가져올 수도 있다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 파일을 텍스트 파일로 저장(출력)
= open("MyTestFile.txt",'wt')     # w:쓰기모드
 
for i in range(1,101):
     data = "%d번째 줄 입니다.\n"%i
     f.write(data)
 
f.close()
 
# read(숫자) : 데이터를 지정한 글자수만큼 가져온다.
input1 = open("MyTestFile.txt",'rt')     # r:읽기모드
print(input1.read(50))
 
f.close()
cs

50 글자만 읽어들인 모습이다.

 

 

 


 

 

다음 readlines()를 이용하여 리스트형태의 데이터를 문자열로 반환하는 예제이다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 파일을 텍스트 파일로 저장(출력)
= open("MyTestFile.txt",'wt')     # w:쓰기모드
 
for i in range(1,101):
     data = "%d번째 줄 입니다.\n"%i
     f.write(data)
 
f.close()
 
# readlines() : 데이터를 리스트형태로 반환
input1 = open("MyTestFile.txt",'rt')     # r:읽기모드
print(input1.readlines())
 
f.close()
cs

 

위의 코드 실행시 아래와 같이 리스트형태로 데이터를 읽어온다.

 

 

따라서 아래와 같이 리스트 안의 value 값만 추출하도록 수정해준다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 파일을 텍스트 파일로 저장(출력)
= open("MyTestFile.txt",'wt')     # w:쓰기모드
 
for i in range(1,101):
     data = "%d번째 줄 입니다.\n"%i
     f.write(data)
 
f.close()
 
# 리스트형태의 readlines()를 
input1 = open("MyTestFile.txt")     # r:읽기모드 (생략가능)
for i in input1.readlines():
     print(i,end="")
 
f.close()
cs

 

 

실행결과 다음과 같이 출력된다.

 

 

 

반응형

댓글