Seite 2 von 2
Re: String aus Textdatei lesen und anschliessend manipuliere
Verfasst: Donnerstag 1. Dezember 2011, 10:37
von deets
Auch nicht unerwaehnt bleiben sollte PyPy, welches inzwischen im Schnitt doppelt so schnell ist als der CPython Interpreter - und dabei unter anderem alternative Garbage Collection einsetzt, womit implizites Verhalten wie bisher nicht garantiert ist. Und das ist schon deutlich relevanter, denn PyPy kann durchaus oft als drop-in replacement genutzt werden (im Gegensatz zu Jython).
Re: String aus Textdatei lesen und anschliessend manipuliere
Verfasst: Donnerstag 1. Dezember 2011, 13:17
von Hyperion
EyDu hat geschrieben:
Nein, darauf, dass das open nicht in den try-Block gehört.
Äh... dann zeig Du mir bitte die Lösung. Ich kann mir das so nicht vorstellen!
Re: String aus Textdatei lesen und anschliessend manipuliere
Verfasst: Donnerstag 1. Dezember 2011, 13:43
von EyDu
Ich hatte doch oben bereits PEP 343 verlinkt:
wird zu
Code: Alles auswählen
mgr = (EXPR)
exit = type(mgr).__exit__ # Not calling it yet
value = type(mgr).__enter__(mgr)
exc = True
try:
try:
VAR = value # Only if "as VAR" is present
BLOCK
except:
# The exceptional case is handled here
exc = False
if not exit(mgr, *sys.exc_info()):
raise
# The exception is swallowed if exit() returns true
finally:
# The normal and non-local-goto cases are handled here
if exc:
exit(mgr, None, None, None)
Das "open" wird, vor dem "try" ausgeführt. Sonst würde man bei einem fehlerhaften Öffnen versuchen die Datei zu schließen.
Re: String aus Textdatei lesen und anschliessend manipuliere
Verfasst: Donnerstag 1. Dezember 2011, 13:46
von frabron
EyDu meint wohl, dass foo in deinem Beispiel (finally) nicht geschlossen werden kann, wenn eine Exception passiert. Soweit ich mich richtig erinnere musste man die try ... excepts ... verschachteln
Code: Alles auswählen
try:
foo = open('bar')
try:
foo.read()
finally:
foo.close()
except IOError:
# ...
Edit: knapp zu spät
Re: String aus Textdatei lesen und anschliessend manipuliere
Verfasst: Donnerstag 1. Dezember 2011, 13:54
von Hyperion
Ah ... ok. Dann hab ich das wohl immer falsch gehandelt - nuja, benutze ja auch schon seit Jahren `with`
Diese Antwort hatte mich jedoch eher verwirrt, als dass sie half:
EyDu hat geschrieben:
Nein, darauf, dass das open nicht in den try-Block gehört.
Re: String aus Textdatei lesen und anschliessend manipuliere
Verfasst: Donnerstag 1. Dezember 2011, 14:51
von jerch
Jaja, das waren schlimme Zeiten, als es nur
try/except bzw.
try/finally gab.
Das Gefummel mit verschachtelten Exceptionhandlern war nicht schön.
Praise the invention of
try/except/finally and
with!
Re: String aus Textdatei lesen und anschliessend manipuliere
Verfasst: Samstag 10. Dezember 2011, 20:20
von nerdizzle
Hallo zusammen!
Ich bin überwältigt wie viel dazu geschrieben wurde, danke vielmals! Ich muss sagen, dass ich exeption handling
in Python noch nicht genau angeschaut habe, kenne es aber aus Java.
Ich habe das ganze nun so gelöst:
Code: Alles auswählen
from pylab import *
xList = []
yList = []
f = open("FunDia1.txt")
xlabel('Verkehrsdichte')
ylabel('Verkehrsfluss')
for line in f:
line = line.rstrip()
parts = line.split()
xList.append(double(parts[0]))
yList.append(double(parts[1]))
plot(xList,yList,'ro')
axis([0,1.2,0,0.5])
show()
Funktioniert wunderbar. Ich möchte die Daten gerne noch mit der Methode der kleinsten Quadrate fitten.
Gibt es eine Funktion, die das für einen macht?
EDIT:
http://www.scipy.org/Cookbook/FittingData
diesen Link habe ich mir angeschaut, aber blicke nicht wirklich durch, darum kann ich es auch nicht implementieren ..
cheers!
Re: String aus Textdatei lesen und anschliessend manipuliere
Verfasst: Sonntag 11. Dezember 2011, 12:48
von Hyperion
1.) Wenn schon mit einem eigenen Ansatz, wieso verwendest Du nicht ``with``? Das wurde ja gerade intensiv diskutiert...
2.) Wieso verzichtest Du auf die Funktion aus ``numpy``, die ich Dir gepostet hatte? Das wäre doch das komfortabelste...