У меня есть следующий код в скрипте python
try:
# send the query request
sf = urllib2.urlopen(search_query)
search_soup = BeautifulSoup.BeautifulStoneSoup(sf.read())
sf.close()
except Exception, err:
print("Couldn't get programme information.")
print(str(err))
return
, я обеспокоен, потому что, если я обнаружу ошибку на sf.read ()
, то sf.clsoe ()
не вызывается.
Я попытался поместить sf.close ()
в блок finally
, но если есть исключение в urlopen ()
, то файла для закрытия нет, и я обнаружил исключение в блоке finally
!
Тогда я попробовал
try:
with urllib2.urlopen(search_query) as sf:
search_soup = BeautifulSoup.BeautifulStoneSoup(sf.read())
except Exception, err:
print("Couldn't get programme information.")
print(str(err))
return
, но это вызвало недопустимую синтаксическую ошибку в с ...
линия.
Как мне лучше с этим справиться, я чувствую себя глупо!
Как отмечали комментаторы, я использую Pys60, который является python 2.5.4