python - closing files properly opened with urllib2.urlopen() -


i have following code in python script

  try:     # send query request     sf = urllib2.urlopen(search_query)     search_soup = beautifulsoup.beautifulstonesoup(sf.read())     sf.close()   except exception, err:     print("couldn't programme information.")     print(str(err))     return 

i'm concerned because if encounter error on sf.read(), sf.clsoe() not called. tried putting sf.close() in finally block, if there's exception on urlopen() there's no file close , encounter exception in finally block!

so tried

  try:     urllib2.urlopen(search_query) sf:       search_soup = beautifulsoup.beautifulstonesoup(sf.read())   except exception, err:     print("couldn't programme information.")     print(str(err))     return 

but raised invalid syntax error on with... line. how can best handle this, feel stupid!

as commenters have pointed out, using pys60 python 2.5.4

why not try closing sf, , passing if doesn't exist?

import urllib2 try:     search_query = 'http://blah'     sf = urllib2.urlopen(search_query)     search_soup = beautifulsoup.beautifulstonesoup(sf.read()) except urllib2.urlerror, err:     print(err.reason) finally:     try:         sf.close()     except nameerror:          pass 

Comments

Popular posts from this blog

ASP.NET/SQL find the element ID and update database -

jquery - appear modal windows bottom -

c++ - Compiling static TagLib 1.6.3 libraries for Windows -