Ich habe folgenden Code in einem Python-SkriptSchließen von Dateien ordnungsgemäß mit urllib2.urlopen geöffnet()
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
ich betroffen bin, denn wenn ich auf sf.read()
einen Fehler auftreten, dann wird sf.clsoe()
nicht genannt. Ich habe versucht, sf.close()
in einem finally
Block, aber wenn es eine Ausnahme auf urlopen()
gibt, dann gibt es keine Datei zu schließen, und ich stoße auf eine Ausnahme im finally
Block!
So dann habe ich versucht
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
aber hob einen ungültigen Syntaxfehler auf der with...
Linie. Wie kann ich am besten damit umgehen, ich fühle mich dumm!
Wie commen darauf hingewiesen haben, ich bin mit PyS60 dem Python ist 2.5.4
Die Anweisung "with" steht nur in Python 2.6 oder in 2.5 zur Verfügung, wenn Sie '__future__ import with_statement' an den Anfang Ihrer Datei setzen. Ich erinnere mich nicht genau, was Python-Version PyS60 implementiert, aber es könnte 2,5 sein? –
ist es 2.5.4. der Import ist ein guter Punkt :) – Habbie