ogr.open (파일) 함수에 Python "with" 문을 사용할 수 있습니까?ogr.open (파일)에 Python "with"문 사용
예를 들어, 내가 좋아하는 뭔가를하고 싶으면 : 만 얻을 수있는, 순간
with ogr.open(file) as ds:
을 작동하려면 다음
try:
ds = ogr.open(file)
...
except:
del ds
ogr.open (파일) 함수에 Python "with" 문을 사용할 수 있습니까?ogr.open (파일)에 Python "with"문 사용
예를 들어, 내가 좋아하는 뭔가를하고 싶으면 : 만 얻을 수있는, 순간
with ogr.open(file) as ds:
을 작동하려면 다음
try:
ds = ogr.open(file)
...
except:
del ds
을 문서에 따르면,이 나타납니다 with ogr.Open(file)
...
with
문에 사용하는 파이썬 개체에는 __enter__
메서드가 있어야합니다. __exit__
을 사용하여 with
블록 내부에서 사용되는 컨텍스트를 설정하고 종료합니다. Here's an explanation.
은 Documentation for OGR Open에 따르면,이 __enter__
및 __exit__
방법은 그래서 당신이 with
문의 대상으로 ogr.Open
에서 결과를 사용할 수 없습니다 Open
에 의해 반환 된 데이터 소스 개체에 대해 정의되지 않습니다. 당신이 (A try
/finally
조합이 더 좋을 수도 있지만) 당신의 try
/except
조합을 사용해야합니다 같은
그래서 그것은 본다.
감사합니다. 설명을 사용하면 왜 내가 그것을 사용할 수 없는지 이해할 수 있습니다. 스크립트가 실행 된 후 소프트웨어가 파일 잠금을 유지하는 것을 방지하는 데 도움이됩니다. –
'와 함께 무엇을 할 생각입니까? 끝에'ds.close() '를 호출 하시겠습니까? – SuperSaiyan
ds (DataSource) 개체에 close() 특성이 없습니다. try-finally 조합 (또는 try - except)을 사용하지 않고 스크립트에 "del ds"가 있어도 내 통역사가 열린 ds (DataSource)에 대한 잠금을 유지한다는 것을 알았습니다. –