[Python-de] Python3.3 - Unittest - Warnung
Stefan
stefan at schweter.it
Di Nov 12 11:36:16 CET 2013
>
> Per Default sind die `ResourceWarning`s beim Starten von
> `python3` nicht aktiv, aber sie können von Test-Frameworks
> aktiviert werden. Das ist das, was du siehst.
>
Hallo Stefan,
danke für den Hinweis! Ich habe mir die entsprechende Python Dokuseite über Warnungen angesehen, da wurde das erwähnt.
>
> Die idiomatische und zuverlässigere Variante ist
>
> with open(temp_test.txt) as f:
> content = f.read()
>
> Am Ende der `with`-Anweisung (Ausrückung) wird die Datei -
> auch bei einer Exception beim Lesen - geschlossen.
>
> Die `ResourceWarning` bekommst du übrigens, weil es von der
> Python-Implementierung abhängt, wann die Datei geschlossen
> wird, wenn du es nicht explizit tust. Das heißt, du solltest
> dich _nicht_ darauf verlassen, dass eine Datei geschlossen
> wird, sobald du die Funktion/Methode verlässt.
>
Danke für die Erklärungen! Ich hab das jetzt überall in meinem Code verwendet.
Ich habe allerdings noch eine Frage zu diesen ResourceWarnings - diesmal aber im Zusammenhang mit NLTK:
from nltk.corpus import brown
counter = 0
for word in brown.words():
counter += 1
print(counter)
Wenn ich das mit python3.3 -Wd starte, kommt wieder diese "ResourceWarning: unclosed file" Warnung.
Als "Workaround" um die Meldung wegzubekommen, verwende ich aktuell das hier:
brown_words = brown.words()
Geht das noch eleganter?
Danke schonmal und schöne Grüße,
Stefan
Mehr Informationen über die Mailingliste python-de