윈썸지니의 별책부록
메인화면
  • 분류 전체보기
    • IT 이야기 공간
      • 프로그램 언어
      • 데이터베이스
      • 운영체제
      • 오픈소스
    • 재테크 공간
      • 돈되는 알짜 정보
      • 편리한 생활정보
메인화면
  • 분류 전체보기
    • IT 이야기 공간
      • 프로그램 언어
      • 데이터베이스
      • 운영체제
      • 오픈소스
    • 재테크 공간
      • 돈되는 알짜 정보
      • 편리한 생활정보
블로그 내 검색

윈썸지니의 별책부록

재테크, 생활정보, 알짜정보, 경제정보, 금융정보등의 생활에 편리한 정보를 전달해드립니다.

  • IT 이야기 공간/프로그램 언어

    파이썬(Python) 파일 입출력 #3 한줄씩 읽기

    2020. 7. 6.

    by. 윈썸지니

    반응형

    출처 : pixabay

    이전 포스팅에서 파일 열기, 전체 읽기, 파일 포인터에 대해 알아보았습니다.

    이전 포스팅을 먼저 참고해 주세요.

    [IT 이야기 공간/프로그램 언어 및 Database] - 파이썬(Python) 파일 입출력 #1 열기 및 생성하기

     

    파이썬(Python) 파일 입출력 #1 열기 및 생성하기

    이번 포스팅은 프로그램을 개발하다 보면 아주 많이 사용하는 파일 처리에 대해 알아봅니다. 어떤 텍스트 파일을 열어서 읽거나 쓰기를 하는 프로그램을 개발한다고 가정합니다. 처리 순서는 ��

    jinisbonusbook.tistory.com

    [IT 이야기 공간/프로그램 언어 및 Database] - 파이썬(Python) 파일 입출력 #2 읽기

     

    파이썬(Python) 파일 입출력 #2 읽기

    지난 포스팅에서는 파이썬 파일 입출력 내용 중 파일 열기에 대해 알아보았습니다. 이전 글을 참고하세요. [IT 이야기 공간/프로그램 언어 및 Database] - 파이썬(Python) 파일 입출력 #1 열기 및 생성��

    jinisbonusbook.tistory.com

    이번 포스팅은 한 라인씩 읽어 오는 법을 알아봅니다.

    두가지 메소드를 제공합니다.

     

    ◆ 파일 한라인 씩 읽기

    • 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)
    0

    print() 를 하면 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 python

    with 구문은 블록을 벗어나면 자동으로 파일이 닫히므로 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

    이 글을 본 사람들도 관심있게 본 글

    • 파이썬(Python) 모듈(module) 만들기 2020.07.28
    • 파이썬(Python) 파일 입출력 #4 쓰기 2020.07.07
    • 파이썬(Python) 파일 입출력 #2 읽기 2020.07.05
    • 파이썬(Python) 파일 입출력 #1 열기 및 생성하기 2020.07.04
Designed by Organic
블로그 이미지
윈썸지니

티스토리툴바