2016-06-23 6 views
1

ogr.open (파일) 함수에 Python "with" 문을 사용할 수 있습니까?ogr.open (파일)에 Python "with"문 사용

예를 들어, 내가 좋아하는 뭔가를하고 싶으면 : 만 얻을 수있는, 순간

with ogr.open(file) as ds: 

을 작동하려면 다음

try: 
    ds = ogr.open(file) 
    ... 

except: 
    del ds 
+0

'와 함께 무엇을 할 생각입니까? 끝에'ds.close() '를 호출 하시겠습니까? – SuperSaiyan

+0

ds (DataSource) 개체에 close() 특성이 없습니다. try-finally 조합 (또는 try - except)을 사용하지 않고 스크립트에 "del ds"가 있어도 내 통역사가 열린 ds (DataSource)에 대한 잠금을 유지한다는 것을 알았습니다. –

답변

2

을 문서에 따르면,이 나타납니다 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 조합을 사용해야합니다 같은

그래서 그것은 본다.

+0

감사합니다. 설명을 사용하면 왜 내가 그것을 사용할 수 없는지 이해할 수 있습니다. 스크립트가 실행 된 후 소프트웨어가 파일 잠금을 유지하는 것을 방지하는 데 도움이됩니다. –