본문 바로가기
[Python]/python 개념

[Python] with문으로 파일 읽고,쓰고 저장하기

by 코드몽규 2022. 2. 11.
반응형

python에서 파일의 입출력(저장, 읽기, 쓰기)을 지원하는 명령어들이 있다. 

 

with문은 파이썬 내에서 파일의 입출력등을 할때 자동으로 close() 해주어 편리하게 사용할 수 있는 기능이다.

 

예를 들어,

먼저 test.txt라는 파일을 생성하고 내용을 적어보자 기존에는 아래와 같은 방법을 사용했다.

기존

file = open("test.txt", 'w')
file.close()
file = open("test.txt", 'w',encoding='utf-8')
file.write("안녕하세요 codemonkyu입니다.")
file.close()

 

제대로 나온것을 확인 할 수 있다. 기존에는 file을 매번 닫아줬어야했다. 

하지만 with문을 쓰면 file.close()를 까먹는 실수를 하지 않을 것이다.

with문

#기존코드
f = open("test1.txt", 'w')
f.write("Life is too short, you need python")
f.close()
#with문
with open("test1.txt", "w") as f:
    f.write("Life is too short, you need python")

파일 열기 모드

  • 파일열기모드: 파일열기모드란 파일을 Binary형태로 읽을지 아니면 인코딩단위로 읽을지, 파일을 읽을건지 쓸건지 아니면 동시에 할건지에 대한 부분을 정하는 지시자라고 볼 수 있습니다.
  • r: 읽기 모드, 파일을 읽을 때 사용합니다.
  • w: 쓰기 모드, 파일에 쓸 때 사용하며 파일이 이미 동일한 이름으로 존재한다면 덮어씁니다.
  • a: 추가 모드, 존재하는 파일에 추가할 때 사용하며 파일이 없다면 생성합니다.
  • r+, w+, a+: 읽기모드 + 쓰기모드, w+와 a+의 차이는 위와 같습니다.
  • rb, wb, ab, rb+, wb+, ab+: 각각의 모드들은 위와 동일하나 Binary 포맷으로 읽거나 쓰는걸 진행합니다.

응용

읽기(Read)

with open('file.txt', 'r') as file_data:
    for line in file_data:
        print(line)

추가(Append)

with open('file.txt', 'a') as file_data:
    file_data.write("Third\n")

 

반응형

댓글