-
반응형
이전 포스팅에서 파일 열기, 전체 읽기, 파일 포인터에 대해 알아보았습니다.
이전 포스팅을 먼저 참고해 주세요.
[IT 이야기 공간/프로그램 언어 및 Database] - 파이썬(Python) 파일 입출력 #1 열기 및 생성하기
[IT 이야기 공간/프로그램 언어 및 Database] - 파이썬(Python) 파일 입출력 #2 읽기
이번 포스팅은 한 라인씩 읽어 오는 법을 알아봅니다.
두가지 메소드를 제공합니다.
◆ 파일 한라인 씩 읽기
- f.readline() : 개행 문자를 기준으로 한 줄 씩 읽습니다.
- f.readlines() : 개행 문자를 기준으로 모든 줄을 읽어서 한 라인씩 리스트로 값을 반환합니다.
예제로 알아봅니다.
이전 포스팅에서 예로 사용하였던 파일입니다.
먼저 메모장으로 file_test.txt 라는 파일을 만들어서 아래와 같이 문장을 입력하고 저장하였습니다.
Hello World!
I am Python
I like python아래 예제를 보면 한 라인 씩 읽어옵니다. 개행 문자까지 포함되었습니다.
>>> f = open( 'c:/py_test/file_test.txt' , mode='r', encoding='utf-8' )
>>> f.readline()
'Hello World!\n'
>>> f.readline()
'I am Python\n'
>>> f.readline()
'I like python'
>>> f.readline()
‘’
>>> f.seek(0)
0print() 를 하면 print 자체에도 개행 문자가 있어서 아래 처럼 한라인이 빈 라인으로 더 출력됩니다.
이걸 방지하기 위해 end=‘’ 라고 끝에 개행 문자를 바꾸어 주었습니다.
>>> print( f.readline() )
Hello World!
>>> print( f.readline(), end='')
I am Python
>>>
>>>f.close()위의 예제에서 readline() 으로 전체 파일의 내용을 출력하고 싶다면 아래와 같이 응용하면 됩니다.
아래 코드를 file_read.py 로 저장합니다.
f = open( 'c:/py_test/file_test.txt' , mode='r' )
line = None
while line != '' :
line = f.readline()
print( line, end=‘’)
f.close()명령창에서 다음을 실행합니다.
파일 전체 내용이 출력됨을 알 수 있습니다.
C:\py_test>python file_read.py
Hello World!
I am Python
I like python
C:\py_test>위의 내용은 출력을 했지만 리스트 변수에 담아서 처리하고 싶을 경우가 있습니다.
이럴 경우는 readlines() 를 사용합니다. s가 붙어서 복수인 이유를 아시겠지요?
예제를 살펴 봅니다.
위의 예제와 역시 같은 파일을 읽어 봅니다.
아래와 같이 리스트로 전체 파일 내용을 가져옵니다.
>>> f = open( 'c:/py_test/file_test.txt' , mode='r', encoding='utf-8' )
>>> f.readlines()
['Hello World!\n', 'I am Python\n', 'I like python’]
>>>f.close()위의 리스트를 라인 단위로 제어하는 응용 프로그램을 작성해 봅니다.
전에 리스트 자료형 다뤘던 것 처럼 사용하면 됩니다.
아래와 같이 코드를 작성합니다. 위의 readline과 달리 한번만 읽어서 리스트 로 반환된 값을 for 문을 사용하여 출력합니다.
f = open( 'c:/py_test/file_test.txt' , mode='r' )
lines = f.readlines()
for line in lines:
print( line, end='' )
f.close()위의 코드를 더 간단하게 만들 수 있습니다.
파이썬의 장점 이기도 합니다.
아래와 같이 작성하여 간단하게 코딩 가능합니다.
결과는 동일합니다.
f = open( 'c:/py_test/file_test.txt' , mode=‘r’ )
for line in f:
print( line, end='')
f.close()◆ with 문을 사용한 파일 처리 방법
with 문을 사용하여 with 구문의 블록을 벗어나면 파일을 close() 를 사용하지 않아도 자동으로 파일을 닫아줍니다.
with open( 'c:/py_test/file_test.txt' , mode='r' ) as f :
for line in f :
print( line, end=‘’ )C:\py_test>python file_read.py
Hello World!
I am Python
I like pythonwith 구문은 블록을 벗어나면 자동으로 파일이 닫히므로 with 구문을 벗어나서도 파일을 사용하려면 with를 사용하지 않는 것이 좋습니다.
경우에 따라 적절한 구문을 사용하면 될 것입니다.
이상으로 파일 읽기 처리 방법에 대해 알아보았습니다.
다음 포스팅은 파일 쓰기 입니다.
반응형'IT 이야기 공간 > 프로그램 언어' 카테고리의 다른 글
파이썬(Python) 모듈(module) 만들기 (0) 2020.07.28 파이썬(Python) 파일 입출력 #4 쓰기 (0) 2020.07.07 파이썬(Python) 파일 입출력 #2 읽기 (2) 2020.07.05 파이썬(Python) 파일 입출력 #1 열기 및 생성하기 (2) 2020.07.04 파이썬(Python) argparse로 명령행 인자 전달 방법 (0) 2020.07.03