[Python] with문으로 입출력하기

Dunno·2021년 7월 28일
0

Python

목록 보기
3/3

소개

파이썬이든 다른 프로그래밍 언어가 되었든, 파일의 입출력 관리는 모든 언어에서 지원된다. 이 때 파일을 open하고 close하는 동작이 필요하다.

파이썬에서는 이런 open을 사용 후 close를 하지 않아 발생하는 오류를 방지하기 위해 with문을 사용한다.

기본 사용법

  • with expression as target: suite 형태로 사용한다.

예를 들어 다음 코드를

textfile = open("text_file.txt")
print(textfile.readline(), end="")
textfile.close()

다음과 같이 바꿀 수 있다.

with open("text_file.txt") as textfile:
#다음과 같이 사용할 함수를 with문 안에 사용한다.
#모든 동작을 마친 후 자동으로 close를 사용해 빠져나온다.
	print(textfile.readline(), end="")

파일 접근제어

  • 파일을 open할 때 그 파일을 binary로 읽을 것인지, 인코딩 단위로 읽을 것인지, 읽기모드로 접근할 것인지, 쓰기모드로 접근할 것인지, 둘 다인지 등을 제어하는 지시자이다.

  • r : 읽기모드, 파일을 읽을 때 사용한다. 내용을 변경하거나 추가할 수 없다.

  • w : 쓰기모드, 파일에 쓸 때 사용한다. 파일이 이미 동일한 이름으로 존재하면 덮어쓴다.

  • a : 추가모드, 존재하는 파일에 추가할 때 사용하며, 파일이 없다면 새로 생성

  • r+, w+, a+ : 읽기모드 + 쓰기모드 w+와 a+의 차이는 위와 같다.

  • rb, wb, ab, rb+, wb+, ab+ : 모드의 동작은 동일하나 Binary 포맷으로 읽고 쓴다.

쓰기

with open("text_file.txt", 'w') as textfile:
	textfile.write("Hello\n")
    textfile.write("World")

읽기

with open("text_file.txt", 'r') as textfile:
	for line in textfile:
    		print(line)

추가

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

0개의 댓글