Python/Python 정리

[Python] with 구문 이해

우준세 2022. 6. 10. 14:50
728x90
반응형

이번 포스팅은 파이썬을 사용하면서 알게 된 with ~ as 문에 대해 이해하기 위해 정리한 글입니다. 


| python with 

- with은 파이썬에서 파일 처리를 하는데 제공하는 기능 중 하나입니다. 보통 프로그램에서 파일 처리를 한다고 하면 

 

1. 파일을 연다 : open() 

2. 파일을 처리한다 : read() or write() .. etc 

3. 파일을 닫는다 : close() 

 

이 세 가지의 방법을 기본으로 하여 처리를 합니다.

그런데 파일을 열고 처리를 했지만 오류가 생기거나 실수로 닫는 처리를 안 한다면 여러 가지 문제가 생길 것입니다.그래서 with은 실행했을 때 오류가 생겨도 해당 구문이 끝나면 close를 해주어 발생할 수 있는 문제를 예방할 수 있습니다.

그전에 python에서 file을 다루는 기본적인 방법을 가볍게 설명하고 with ~ as문을 설명하려고 합니다.


| python에서 file의 open()과 close() 

- 파이썬에서 파일을 다루는 방법은 따로 포스팅을 할 예정이며 이번에는 간단하게 파일을 다루는 방법을 알아보겠습니다.

먼저 txt 파일을 만들어 첫 줄을 읽는 코드를 작성해 보겠습니다

 

test.txt

 

예시) 

file_path = 'path'

# 'r'은 파일을 읽는 다는 뜻 
f = open(file_path + 'test.txt', 'r', encoding = 'utf-8')

# readline()은 txt에서 한 줄만 읽음 
read_line = f.readline() 

f.close()

print(read_line)

>>> test sample

 

- 정상적으로 test.txt의 첫 줄인 test sample을 읽은 것을 확인할 수 있습니다. 


| with ~ as 문

- 위 코드를 보시면 open -> readline -> close 순서로 파일 처리가 됐다는 것을 볼 수 있는데 여기서 오류가 발생하거나 실수로 close를 하지 않는다면 파일은 계속해서 열려있는 상태로 유지가 됩니다. 이런 것을  with ~ as문을 사용하여 방지할 수 있습니다. 예시를 통해 알아보겠습니다.

 

예시)

file_path = 'path'

with  open(file_path + '/test.txt', 'w', encoding = 'utf-8') as f :
    f.write('this is test code')

 

결과) 

 

- 기본적으로 with as 문은 with open() as 파일 객체 : 의 형태로 사용합니다. write가 끝난 뒤 자동으로 close 되며 

앞서 코드보다 더 간결하게 파일 처리를 하는 것을 볼 수 있습니다. 

 

 

파이썬의 with ~ as문을 알아봤습니다.

 틀린 점이나 질문이 있으시면 댓글로 남겨주세요! 

 

감사합니다 :) 

 

 

 

728x90
반응형