EyDu hat geschrieben:problembär hat geschrieben:Ah, ok. Aber ich denke schon, daß es eine Möglichkeit geben wird, Python-Listen in Numpy-Arrays umzuwandeln.
Und warum sollte man diesen überflüssigen Umweg gehen? Er kostet Zeit, man baut sich Fehler ein, kann sein Programm schlechter erweitern und langsamer ist es auch noch. Vielleicht findest du ja Vorteile?
Wenn es einen direkten Weg gibt, dann ist der sicher besser. Gibt es ja offenbar. Wahrscheinlich würde eine Umwandlung in Bezug auf die Geschwindigkeit allerdings vernachlässigbar sein. Kommt natürlich auf die Datenmenge an.
EyDu hat geschrieben:problembär hat geschrieben:Hat aber immerhin den Vorteil, daß solcher Code dann mit vielen Python-Versionen läuft. Ich nutze z.B. 2.4, und da gibt's das "with" noch gar nicht.

Die meisten werden sicher eine neuere Version nutzen. Hinzu kommt, dass es meistens überhaupt nicht notwendig ist eine ältere Version zu unterstützen. Das endet meistens nur in unnötiger Arbeit die keinen Vorteil bringt und gleichzeitig Fehler einbaut.
Es ist schon ein Problem, wenn man Programme stets in der allerneuesten Syntax schreibt.
Mit 2.4 kann ich nur noch die wenigsten Anwendungen nutzen. Hab' neulich z.B. probiert, [url=p://mypaint.intilinux.com]MyPaint[/url] zu installieren. Geht nicht. Wie fast alles.
Man erreicht also nur sehr wenige Leute, wenn man die neueste Syntax nutzt. Nicht jeder, der eine Python-Anwendung startet, hält sein Python-System stets auf dem neuesten Stand. Das wird bei der Vielzahl der Module wohl nur eine ganz geringe Minderheit tun. Der Konflikt zwischen 2.x und 3.x kommt noch dazu.
Und nicht jeder kann sich alle 2 Jahre einen neuen Rechner leisten. Vor allem, wenn der alte gar nicht kaputt ist.
Wenn man also benutzerfreundlich schreiben will, das heißt, wenn der Benutzer das Skript ohne große Probleme sofort starten können soll, sollte man also altbewährten Standardcode wählen und auch so wenige externe Module wie möglich einbinden.
EyDu hat geschrieben:problembär hat geschrieben:Hmm, hatte da noch nie Probleme. Wie sollte man das denn ausschließen?
Du fängst zum Beispiel keine Exceptions ab, die beim Lesen der Daten auftreten können. Das bedeutet, dass die Datei in einem Fehlerfall nicht richtig geschlossen wird. In älteren Versionen muss das Lesen und Schreiben von einem try/except-Block umschlossen sein.
Hmm, wenn es beim Lesen einen Fehler gibt, will ich doch, daß das Programm abbricht und eine Fehlermeldung ausgibt. Das macht es doch gerade, wenn ich den Fehler
nicht abfange.
Beim Abbruch des Python-Skripts stürzt ja nicht der Interpreter mit ab. Sondern er wird dann sicherlich noch offene Filehandles wieder schließen, bevor er sich beendet.
Daher ist try/except hier etwas übervorsichtig (und also nicht nötig). Gibt's in anderen Sprachen, die das gleiche machen, so ja auch gar nicht.
EyDu hat geschrieben:problembär hat geschrieben:Es kann wohl nicht schaden, wenn er erstmal (mit oder ohne "with") lernt, wie man generell aus einer Datei liest. Vielleicht will er das ja auch mal ohne numpy machen.
Wie man am ersten Beitrag sieht, kann er das bereits.
Prima, dann hätte man ihm also sagen sollen, er sei auf einem guten Weg. Die übrige Diskussion war dann also auch mal wieder überflüssig.