읽기 모드

Junho Song·2022년 11월 17일
0

Python

목록 보기
2/11

open()명령어는 파일을 만들고 열어 MODE 값에 따라 읽고 편집이 가능함.

open(file, mode='rb', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

mode가 들어가는 자리에는 'rb', 'rt', 'wb', 'wr'와 같이 액션과 타입을 지정함.

  • 액션 : w(기록), a(추가), r(읽기:기본값)
  • 타입 : t(텍스트:기본값), b(2진 파일) open 으로 열린 객체는 .close() 로 닫아 주어야 한다.
f = open("test.txt", "w", encoding="utf8")

f라는 객체에 이와 같이 대입한다 --> test.txt라는 텍스트 파일을 생성해서 열고 무언가를 쓸거다("w"), encoding 타입은 유니코드("utf8")이다.
해당 코드를 실행하면 아래와 같이 test.txt파일이 작업 환경 내에서 생성된 것이 확인된다. *주의할 것, "w" 모드는 기존에 파일이 있던 경우라면 기존 파일의 내용을 전부 지우고 새로 쓰게된다. 기존에 있는 파일에 추가하려면 "a"모드를 쓸 것.

f.write("Life is too short\n")

Life is too short라는 문장을 test.txt파일인 f에 작성한다(f.write()). \n은 여기까지 작성하고 해당 줄을 끝낸다는 뜻.

위의 코드를 실행한다고해서 바로 해당 문장이 텍스트 파일에 쓰여지는건 아니다.

f.close()로 파일을 닫아야 Life is too short 라는 문장이 test.txt 파일에 저장된 것을 확인할 수 있다.

f = open("test.txt", "rt", encoding="utf8")

위와같이 rt를 이용해 읽기 모드로 텍스트를 불러올때는 파일 전체를 읽어오기 때문에 파일이 크면 문제가 발생할 수 있음.

그래서 readline()함수를 사용한다. 라인 단위로 파일을 읽는것.

while True:
    line = f.readline(10) # -> readline()은 EOL \n \r\n EOF which is 끝 까지 읽고 끝을 낸다
    # debugging!!! --> line by line
    print(type(line), len(line))
    if not line: #라인에 아무것도 없으면
        break    #브레이크 걸어라
    line = line.strip() # 공백 문자 제거
    print(line)

f.close()
profile
상위 1%의 금융데이터 분석가를 꿈꿉니다.

0개의 댓글