반응형
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
|
# 파일을 텍스트 파일로 저장(출력)
f = 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
|
# 파일을 텍스트 파일로 저장(출력)
f = 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
|
# 파일을 텍스트 파일로 저장(출력)
f = 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
|
# 파일을 텍스트 파일로 저장(출력)
f = 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
|
# 파일을 텍스트 파일로 저장(출력)
f = 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 |
실행결과 다음과 같이 출력된다.
반응형
'Python' 카테고리의 다른 글
[Python 기초] 파이썬 클래스 - 오버라이딩 (overriding) (0) | 2021.04.05 |
---|---|
[Python 기초] 파이썬 파일 다루기 - pickle 모듈 (dump, load) 와 with 으로 파일 닫기 (0) | 2021.04.05 |
[Python 기초] 파이썬 파일 다루기 - 쓰기 : open() , write() , close() (0) | 2021.04.05 |
[Python 기초] 파이썬 모듈 - sys.path 와 path.append() / 패키지 (packge) (0) | 2021.04.04 |
[Python 기초] 파이썬 모듈 - import , 모듈명 설정 (import as) 모듈 내 (from import) (1) | 2021.04.04 |
댓글