python auf mac

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
kaschu
User
Beiträge: 25
Registriert: Sonntag 25. Februar 2007, 14:15

goldfisch hat geschrieben:wenn ich wie empfohlen, linie um linie weglasse, um zu kontrollieren was er tut, dann tut er dann auf zeile 2 eben gar nichts mehr - weils nichts zu tun gibt.
Du sollst die Zeilen der CSV-Datei dezimieren. Ich vermute einen Datenfehler.
goldfisch
User
Beiträge: 52
Registriert: Sonntag 17. August 2008, 19:52

die Zeilen der CSV-Datei dezimieren
sorry für die blöde frage - aber was heisst dezimieren?
die excel-datei als csv gespeichert sieht folgendermassen aus:
vorname;nachname;geburtsdatum;wohnort;haarfarbe
Daniel;Zakowski;hallo;Sibnslaken;Schwarz
David;Schönauer;hallo;Aachen;Braun
Sebastian;Sentner;hallo;Sydney;Dunkelblond
ist ein versuchsbeispiel...

wo wäre dann der datenfehler? umlaute?
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

goldfisch hat geschrieben:sorry für die blöde frage - aber was heisst dezimieren?
Das ist eine von Konsul Appius Claudius Sabinus eingeführte Strafmaßnahme, bei der jeder zehnte Mann einer römischen Legion getötet wird. Hätte dir bestimmt auch die Wikipedia sofort mitgeteilt :)

Stefan
kaschu
User
Beiträge: 25
Registriert: Sonntag 25. Februar 2007, 14:15

goldfisch hat geschrieben:
die Zeilen der CSV-Datei dezimieren
sorry für die blöde frage - aber was heisst dezimieren?
die excel-datei als csv gespeichert sieht folgendermassen aus:
vorname;nachname;geburtsdatum;wohnort;haarfarbe
Daniel;Zakowski;hallo;Sibnslaken;Schwarz
David;Schönauer;hallo;Aachen;Braun
Sebastian;Sentner;hallo;Sydney;Dunkelblond
ist ein versuchsbeispiel...

wo wäre dann der datenfehler? umlaute?
frag nicht uns, sondern probiere es aus! Läuft Dein Programm mit den 4 Zeilen da oben, oder wirft es den Fehler?
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

sma hat geschrieben: Das ist eine von Konsul Appius Claudius Sabinus eingeführte Strafmaßnahme, bei der jeder zehnte Mann einer römischen Legion getötet wird. Hätte dir bestimmt auch die Wikipedia sofort mitgeteilt :)
:lol: Man sollte sich öfter mal über den Ursprung einiger Wörter Gedanken machen :)
Darii
User
Beiträge: 1177
Registriert: Donnerstag 29. November 2007, 17:02

sma hat geschrieben:
goldfisch hat geschrieben:sorry für die blöde frage - aber was heisst dezimieren?
Das ist eine von Konsul Appius Claudius Sabinus eingeführte Strafmaßnahme, bei der jeder zehnte Mann einer römischen Legion getötet wird. Hätte dir bestimmt auch die Wikipedia sofort mitgeteilt :)
*rofl* Für die Antwort sollte man dir nen Orden verleihen. :)
goldfisch
User
Beiträge: 52
Registriert: Sonntag 17. August 2008, 19:52

philosophisch super - konstruktiv mangelhaft - allgemeinwissen genial - verwertbarkeit null!

ich brauche keine aufklärung über das leben - ich brauche konstruktive hinweise in bezug auf python - was meines erachtens teilweise etwas weit weg vom leben ist... :lol:
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

goldfisch hat geschrieben:wo wäre dann der datenfehler? umlaute?
Hast du denn mal eine Probedatei ohne Umlaute probiert?
Offizielles Python-Tutorial (Deutsche Version)

Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
goldfisch
User
Beiträge: 52
Registriert: Sonntag 17. August 2008, 19:52

ja habe ich. auch mit zahlen hab ichs probiert. hilf nichts. es liegt also nicht an den umlauten.
es kommt wieder die meldung:
Traceback (most recent call last):
File "csvreader.py", line 3, in ?
_csv.Error: newline inside string
mit line 3 meint er zeile 3 im script - und die lautet
for row in reader
damit muss was falsch sein - aber was?
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

Das Problem liegt schon an der cvs-Datei. Eine Idee die ich habe, ist, dass wenn du deine csv-Datei aus Exel speicherst (also unter WIndows), du als Zeilenumbruch-Zeichen \r\n hast, waehrend der Mac, wo du das Python-Script laufen laesst, meines Wissens \r verwendet. Vlt. bringt das den csv-Reader durcheinander?

Zum einen koenntest du nochmal ausprobieren, wenn du einfach selbst eine kurze CVS-Datei auf dem Mac mit einem Texteditor schreibst und speicherst, z.B. kannst du die CVS-Datei, die du hier gepostet hast, per Copy & Paste uebernehmen (am Besten erstmal was ohne Umlaute). Wenn das auch nicht funktioniert, koennte man mal eine csv-Datei von Python erstellen lassen und schauen, wie die Datei aussieht (vor allem die Zeilenumbrueche).

Dann gibt es theoretisch auch noch die Moeglichkeit, beim csv-Reader das Zeilenumruchzeichen mitzugeben, aber die Doku klingt da nicht sehr vielversprechend:
http://docs.python.org/lib/csv-fmt-params.html hat geschrieben:lineterminator
The string used to terminate lines produced by the writer. It defaults to '\r\n'.

Note: The reader is hard-coded to recognise either '\r' or '\n' as end-of-line, and ignores lineterminator. This behavior may change in the future.

:K Du kannst es natuerlich trotzdem einfach mal ausprobieren.
Offizielles Python-Tutorial (Deutsche Version)

Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
goldfisch
User
Beiträge: 52
Registriert: Sonntag 17. August 2008, 19:52

hey wow - jetzt gehts!!!
ich habe die csv-datei in textwrangler geschrieben, mit kommas getrennt und dort unicode utf-8 eingestellt. jetzt klappts - er gibt die daten in der konsole aus!
['\xef\xbb\xbfname', ' vorname', ' wohnort', ' land\xe2\x80\xa8meier', ' hugo', ' olten', ' schweiz\xe2\x80\xa8huber', ' alfons', ' genf', ' schweiz]
allerdings gibt er noch ein paar hyroglypen aus, die ich nicht geschrieben habe. damit meine ich
['\xef\xbb\xbfname', ' vorname', ' wohnort', ' land\xe2\x80\xa8meier'.....

was bedeutet das?
meine koordinatenliste mit x, y, z gibt er folgendermassen aus:
['\xef\xbb\xbf15.5;14.9;25.9\xe2\x80\xa819.5;14.4;23.35\xe2\x80\xa817;10.6;26.6\xe2\x80\xa818;8.1;27.75\xe2\x80\xa817;7.05;28.7\xe2\x80\xa822;7.55;27.75\xe2\x80\xa823;3.05;28.4\xe2\x80\xa826;-1;27.85\xe2\x80\xa824.5;0.8;20.9\xe2\x80\xa825.5;1.15;14.55\xe2\x80\xa820;4.45;13.05\xe2\x80\xa821;13.1;16.25\xe2\x80\xa819.5;11.9;14.2\xe2\x80\xa814.5;20.25;13.45\xe2\x80\xa88;20.25;14.7\xe2\x80\xa89;19.7;15.35\xe2\x80\xa88;19.25;17.85\xe2\x80\xa8.....
auch hier stehen die einträge zwischen '\xef\xbb\xbf - dann kommen die zahlen, und dann wieder - \xe2\x80\xa8.

was ich am erstaunlichsten finde ist, dass ich den befehl delimiter=";" nicht eingeben muss, egal ob es sich in der csv-datei um kommas oder semikolons handelt.
goldfisch
User
Beiträge: 52
Registriert: Sonntag 17. August 2008, 19:52

jetzt klappts - nachdem ich in textwrangler auf unix(FL) umgeschaltet habe funktionierts auch mit der ausgabe. er gibt mir die x, y, z koordinaten folgendermassen aus:
['15.5', '14.9', '25.9']
['19.5', '14.4', '23.35']
['17', '10.6', '26.6']
['18', '8.1', '27.75']
['17', '7.05', '28.7']
jetzt muss ich das nur noch als zeichnung in blender reinkriegen und ich bin wunschlos glücklich (na jedenfalls fast...)
:D
goldfisch
User
Beiträge: 52
Registriert: Sonntag 17. August 2008, 19:52

ich dachte ich kriege das irgendwie hin - die koordinaten jetzt in blender zu bringen - aber ich kriege es nicht hin. kann mir jemand dabei helfen?

ich habe ziemlich viel probiert und habe jetzt dermassen einen hirnisturm, dass ich nicht mehr weiss wo oben und unten ist - hilfe!
BlackJack

Wenn ich mal raten müsste und die Trippelschitte bisher zugrunde lege: Dir ist klar, dass Du da Listen mit *Zeichenketten* hast, die Du in *Zahlen* umwandeln musst?

Kannst Du eigentlich Python? Also ich meine ohne Blender? Hast Du das Tutorial aus der Dokumentation mal durchgearbeitet?
goldfisch
User
Beiträge: 52
Registriert: Sonntag 17. August 2008, 19:52

nein ich kann python nicht. ich habe mir die dokumentation mal vorgenommen, bin dann aber über die verschiedenen versionen gestolpert. mich interessiert python vor allem im zusammenhang mit blender, weil ich dann ein visuelles ergebnis bekomme und sehe, was passiert.

ich finde es schwierig, das richtige tutorial zu finden. aus all den diversen schnipseln, die ich gefunden habe, funktionierts nur zum teil - wegen versionsunterschieden / synthax - dadurch trete ich oft an ort und es ist etwas frustrierend.
mein problem mit dem script in blender zu bekommen, habe ich inzwischen auf holzfällerart wahrscheinlich etwas unelegant gelöst aber es funktioniert.

ein wirklich gutes tutorial für python 2.3.5 zusammen mit blender 2.4.5 - so ein richtiger idealfall wo das zeug zusammenpasst und auch funktioniert - das wäre cool!
BlackJack

Ich habe ja extra das Tutorial aus der *Dokumentation* erwähnt. Auf python.org gibt's auch noch die Dokumentationen zu allen älteren Versionen, also findest Du da auch das Tutorial zu Deiner Python-Version.

Und das erst einmal ausserhalb von Blender zu lernen ist IMHO einfacher, da Blender selbst zusätzlicher Lernstoff ist. An dem Punkt sollte man die Python-Grundlagen inklusive objektorientierter Programmierung schon drauf haben, denn die Interaktion mit Blender um das Programm zu anzeigen von Ergebnissen zu bekommen, ist sicher komplexer als einfache Text-Ein- und Ausgaben.

Ein visuelles Ergebnis in Blender ist beim Lernen von Python-Grundlagen nicht so hilfreich wie das interaktive Ausprobieren im Python-Interpreter. Da bekommt man sofort das Ergebnis zu sehen und muss sich nicht erst überlegen wie man das grafisch aufbereiten soll, insbesondere wenn es darum geht, dass man gar nicht weiss *was* eine Operation als Ergebnis hat, und man sie gerade um das heraus zu finden ausführt. Und man kann mit einem Ergebnis "live" weiter experimentieren.
goldfisch
User
Beiträge: 52
Registriert: Sonntag 17. August 2008, 19:52

das Tutorial aus der *Dokumentation*
meinst du dieses tutorial? http://www.python.org/doc/2.3.5/tut/tut.html ich gebe zu ich habe etwas mühe mit dem fachenglisch.

das deutsche tutorial hier ist leider für version 2.5
http://www.galileocomputing.de/openbook ... 01_001.htm

ich bräuchte nun ein deutsches tutorial für 2.3.5 - das habe ich bis jetzt nicht gefunden.
vielleicht findest du jetzt, dass das nicht so ein grosser unterschied macht. für mich ist es jedoch wichtig, dass ich mich darauf verlassen kann, dass das, was im buch steht auch funktioniert, weil ich mir eben nicht vorstellen kann, wo ich was anders machen muss, wenns nur an der version liegt. das ist für anfänger extrem schwierig!
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

goldfisch hat geschrieben:das deutsche tutorial hier ist leider für version 2.5
http://www.galileocomputing.de/openbook ... 01_001.htm
Das ist nicht das deutsche Tutorial, weder für 2.5 noch eine andere Version.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Flo668
User
Beiträge: 39
Registriert: Mittwoch 23. Juli 2008, 10:41

Moin, moin!

Ich wurde gerade gefragt, ob man via Python Script die Ausgabe auf der Mac Kommandozeile auslesen könne. Ich denke mal, das geht bestimmt nur weiss ich nicht wie. Daher wäre ich sehr dankbar, wenn das jemand von Euch wüsste.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Genauso wie auf allen anderen Betriebssystemen, via Subprocess. Aber das hier ist kein allgemeiner "Eure Mac-Fragen hier"-Thread, also mach bitte einen neuen auf.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Antworten