with 키워드를 이용하여 파일을 읽고 쓰는 방법에 대해서 알아보겠습니다.

1. with를 사용하지 않고 파일 열기

with를 사용하지 않고 파일을 열면, 파일을 모두 사용하고 close()로 파일을 닫아줘야 합니다.

만약 파일을 닫지 않으면 프로세스에 파일이 열린 상태로 되어있고, 이런 것이 누적되어 파일을 열 수 없는 상황이 발생할 수 있습니다.

file = open('sample.txt', 'r')

# 파일 내용 읽기
file_contents = file.read()

# 파일 내용 출력
print(file_contents)

# 파일 닫기
file.close()

2. with로 파일 열기

with를 사용하여 파일을 열면, with 구문이 종료될 때 저절로 파일이 닫힙니다. 따라서, 명시적으로 닫아줄 필요가 없어서 실수로 리소스 leak이 발생하는 일이 없게 됩니다.

아래와 같이 with를 사용하여 파일을 열 수 있습니다.

  • open('sample.txt', 'r') : read 모드로 파일 열기
  • file.read() : 파일 내용 읽기
# 파일을 읽기 모드로 열기
with open('sample.txt', 'r') as file:
    # 파일 내용 읽기
    file_contents = file.read()
    # 파일 내용 출력
    print(file_contents)

3. with로 파일 쓰기

with로 파일을 쓰려면, 아래와 같이 w 모드로 파일을 열면 됩니다.

  • open('sample.txt', 'w') : write 모드로 파일 열기
  • file.write('Hello,\n') : 파일에 문자열 쓰기
# 파일을 쓰기 모드로 열기
with open('sample.txt', 'w') as file:
    # 파일에 쓰기
    file.write('Hello,\n')
    file.write('Python!\n')

4. with를 사용하여 append 모드로 파일 열기

append 모드는 파일을 쓰기 모드로 열 때, 파일의 내용을 지우지 않고 기존 파일의 마지막에 추가로 내용을 쓰는 모드입니다.

  • open('sample.txt', 'a') : 파일을 append 모드로 열기
# 파일을 쓰기 모드로 열기
with open('sample.txt', 'a') as file:
    # 파일에 쓰기
    file.write('파일 마지막에 문장을 추가합니다.\n')
    file.write('다음 문장.\n')