일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 자료구조
- 데이터베이스
- 알고리즘
- 사이버보안
- 네트워크보안
- 프로그래밍
- 웹개발
- 프로그래밍언어
- 소프트웨어
- I'm Sorry
- 컴퓨터과학
- 2
- 네트워크
- 빅데이터
- 클라우드컴퓨팅
- 자바스크립트
- 컴퓨터비전
- 보안
- 데이터과학
- 머신러닝
- 데이터구조
- 인공지능
- 파이썬
- 데이터분석
- 버전관리
- 컴퓨터공학
- 소프트웨어공학
- 딥러닝
- 코딩
- Yes
- Today
- Total
스택큐힙리스트
Python 'with'문을 사용할 때 예외 처리하기 본문
파이썬 'with'문에서 예외 처리를 어떻게 다룰지 이해할 수 없습니다. 코드가 다음과 같다면:
with open(a.txt) as f:
print f.readlines()
나는 뭔가를 하기 위해 '파일을 찾을 수 없는 예외'를 처리하고 싶다. 그러나 내가 쓸 수 없다.
with open(a.txt) as f:
print f.readlines()
except:
print 'oops'
그리고 쓸 수 없습니다.
with open(a.txt) as f:
print f.readlines()
else:
print 'oops'
try/except 구문으로 with 구문을 감싸는 것도 작동하지 않으며, 예외가 발생하지 않습니다. Pythonic한 방식으로 with 구문 내에서 실패를 처리하려면 어떻게 해야 할까요?
답변 1
from __future__ import with_statement
try:
with open( a.txt ) as f :
print f.readlines()
except EnvironmentError: # parent of IOError, OSError *and* WindowsError where available
print 'oops'
open 호출과 작업 코드에서 다른 오류 처리를 원한다면 다음과 같이 할 수 있습니다.
try:
f = open('foo.txt')
except IOError:
print('error')
else:
with f:
print f.readlines()
답변 2
Python의 'with'문을 사용하면 예외를 catch할 수 있습니다.Python은 널리 사용되는 프로그래밍 언어 중 하나입니다. Python을 사용하면 프로그래밍이 쉬워지고 깔끔하게 코딩할 수 있습니다. Python의 'with'문은 파일이나 네트워크 연결과 같은 리소스를 열거나 닫을 때 사용할 수 있습니다. 이를 사용하면 파일 또는 연결을 올바르게 닫지 않기 때문에 발생할 수 있는 예외를 쉽게 catch할 수 있습니다.
'with'문을 사용하면 예외를 catch할 수 있기 때문에 예기치 않은 오류로부터 프로그램이 보호됩니다. 'with'문은 try-except 구문을 사용하면서 파일 또는 연결을 닫는 것과 같은 많은 일들을 쉽게 처리할 수 있습니다. 이를 통해 메모리와 CPU 자원도 효과적으로 사용할 수 있습니다.
이 예시를 통해 'with'문과 예외처리 가능성을 이해할 수 있습니다. 파일을 읽는 예제를 살펴봅시다.
```python
with open(file.txt, r) as f:
data = f.read()
```
위의 코드는 file.txt 파일을 읽어들이는 코드입니다. 이 코드를 실행하다가 발생할 예외를 catch하려면 try-except 문을 사용해야 합니다.
```python
try:
with open(file.txt, r) as f:
data = f.read()
except IOError:
print(파일이 없습니다.)
```
위의 코드에서 'with'문에서 IOError가 발생하면 except 블록으로 이동하여 파일이 없습니다. 메시지를 출력합니다.
이렇게 'with'문을 사용하여 파일 또는 연결 같은 리소스를 쉽게 닫고 예외를 catch할 수 있습니다. 이로 인해 프로그램의 안정성과 효율성이 향상됩니다.