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
しかし、これにより、行で無効な構文エラーが発生しましたwith...
。どうすればこれをうまく処理できますか、私は愚かです!
コメンターが指摘したように、私はpython 2.5.4であるPys60を使用しています