我有一个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.close()
就不会被调用。
我试着将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...
这一行上出现了语法错误。我该如何最好地处理这个问题,我感到很愚蠢!
正如评论者所指出的那样,我正在使用Pys60,它是Python 2.5.4。