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.
BlackJack

Pfade, der aktuelle Pfad eines Prozesses, und das `/` das Wurzelverzeichnis ist, ist eigentlich auf Windows, Linux, und Mac gleich. Bei Windows mit der Einschränkung, dass es pro Laufwerk ein Wurzelverzeichnis gibt, und nicht ein "globales", aber das ist hier ja nicht wichtig.

Insgesamt fehlen Dir offensichtlich ein paar Wissensgrundlagen wie Dein Betriebssystem unter der grafischen Oberfläche funktioniert. Das ist im Grunde ein BSD, also nicht so weit von Linux entfernt, und es ist kein spezielles Python-Wissen.
kaschu
User
Beiträge: 25
Registriert: Sonntag 25. Februar 2007, 14:15

Ich arbeite mit einem Mac. Und ich kann Dir versichern, der Mac ist nicht "teilweise abgeschlossen".

Was genau ist nochmal Deine allgemeine Python-Frage?
goldfisch
User
Beiträge: 52
Registriert: Sonntag 17. August 2008, 19:52

blackjack hat schon recht, mir fehlen ein paar wissensgrundlagen zum betriebssystem. und ich habe nicht unbedingt ein python-problem sondern ein problem mit python und blender. die sollten zusammen arbeiten.

kaschu kann mir vielleicht helfen?
mein problem ist, dass ich nicht weiss, wo ich z.b. dateien oder scripts ablegen muss, damit blender sie finden kann. wenn ich in blender import os print os.getcwd() eingebe, gibt er den pfad / aus - und ich weiss nicht wo das ist.... ich dachte mit / sei derselbe ordner gemeint, in dem die blender-datei liegt aus der ich die abfrage starte.

wenn ich in blender
import csv
reader = csv.reader(open("test.csv", "rb"))
for row in reader:
for item in row:
print item

eingebe, dann findet er die datei test.csv nicht, obwohl diese datei im selben ordner liegt wie die blender und die python datei.
wo muss ich sie also hinlegen?
kaschu
User
Beiträge: 25
Registriert: Sonntag 25. Februar 2007, 14:15

Wenn Du im Finder mit der rechten Maustaste die Datei "test.csv" anklickst, und Du den Menüpunkt "Informationen" anklickst, was wird Dir dann in der Zeile "Ort" angezeigt?

Wenn dort soetwas wie: "/Users/goldfisch/Documents" steht, versuche im Python Code dieses hier:

Code: Alles auswählen

import csv 
reader = csv.reader(open("/Users/goldfisch/Documents/test.csv", "rb")) 
for row in reader: 
    for item in row: 
        print item 
Zuletzt geändert von kaschu am Donnerstag 28. August 2008, 06:19, insgesamt 1-mal geändert.
goldfisch
User
Beiträge: 52
Registriert: Sonntag 17. August 2008, 19:52

hey danke - jetzt findet er wohl die datei - dafür hat er jetzt schon wieder ein neues problem. folgende fehlermeldung erscheint:

Traceback (most recent call last):
File "csv.py", line 4, in ?
_csv.Error: newline inside string

hat das was mit den einrückungen zu tun? oder hat das was mit der csv-datei zu tun?
ursprünglich war das eine excel-datei, die ich als csv-datei exportiert habe.
BlackJack

Wie sieht die Datei bzw. die betreffende Zeile denn aus?
kaschu
User
Beiträge: 25
Registriert: Sonntag 25. Februar 2007, 14:15

goldfisch hat geschrieben:
Traceback (most recent call last):
File "csv.py", line 4, in ?
_csv.Error: newline inside string
Das wird entweder an der csv-Datei liegen, oder in der falschen Anwendung des csv-Readers (falscher Dialekt oder falsches Quoting).

Hast Du die Doku zum csv-Modul gelesen? Insbesondere: http://docs.python.org/lib/csv-fmt-params.html?
goldfisch
User
Beiträge: 52
Registriert: Sonntag 17. August 2008, 19:52

keine ahnung, was mit zeile 4 sein soll. für mich sieht die aus wie alle anderen auch.

danke für den link auf die csv-fmt-params - gibts so was auch in deutsch. das fachenglisch finde ich ziemlich schwierig... :oops:
BlackJack

Bist Du sicher das es Zeile 4 ist? Die 4 im Traceback bezieht sich auf den Quelltext und nicht auf die CSV-Datei!
kaschu
User
Beiträge: 25
Registriert: Sonntag 25. Februar 2007, 14:15

Jeden Tag eine gute Tat :wink: :

http://www.galileocomputing.de/openbook ... 19_005.htm

Jetzt aber... :idea: !
goldfisch
User
Beiträge: 52
Registriert: Sonntag 17. August 2008, 19:52

auf zeile vier steht im script
for row in reader:
danke für die gute tat (für den link)! :D werde versuchen es zu verstehen...

die csv-datei sollte mit kommas getrennt sein - oder? wenn ich sie in textwrangler anschaue, dann sind dort ; gesetzt. macht das was aus? und wenn ja, wie kann ich das ändern? habe schon alle varianten von excel durchprobiert. es macht immer ; anstatt ,
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

Code: Alles auswählen

reader = csv.reader(open(...), delimiter=";")
Offizielles Python-Tutorial (Deutsche Version)

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

das habe ich soeben rausgefunden. eigentlich funktionierts
reader = csv.reader(open("versuch.csv","rb"), delimiter=";")
>>>
dann gebe ich ein
for row in reader:
print row
sollte er dann nicht den inhalt der datei ausgeben? - bei mir passiert gar nichts...
goldfisch
User
Beiträge: 52
Registriert: Sonntag 17. August 2008, 19:52

vorher habe ich es in idle (ohne blender) versucht. dann wird python 2.5 benutzt. es passiert zwar nichts aber es gibt auch keine fehlermeldung.

wenn ich dasselbe script in blender mit python 2.3 ausführen lasse, gibt er mir folgende fehlermeldung:
File "csvreader.py", line 3
for row in reader:
^
SyntaxError: invalid syntax
auf linie drei steht: for row in reader
also liegts schon auch mal an den versionen. wie lautet der befehl in python 2.3 für for row in reader?
das python openbook ist blöderweise für python 2.5 und nicht für 2.3

wo kann ich rausfinden, wie es in 2.3 geschrieben werden muss?
kaschu
User
Beiträge: 25
Registriert: Sonntag 25. Februar 2007, 14:15

Zeig bitte mal Deine ganze "csvreader.py" Datei. So wie sie bei Dir gespeichert ist. Also mit allen Einrückungen. Anhand der mageren Informationen von Dir ist es schwierig bis unmöglich eine Ursache für die Fehlermeldung zu benennen. :roll:
goldfisch
User
Beiträge: 52
Registriert: Sonntag 17. August 2008, 19:52

so sieht die datei csvreader.py aus, die obige fehlermeldung erzeugt

Code: Alles auswählen

import csv
reader = csv.reader(open("/Users/macbook/Desktop/versuch.csv","rb"), delimiter=";")
	for row in reader:
		print row
ist das richtig für python 2.3?
kaschu
User
Beiträge: 25
Registriert: Sonntag 25. Februar 2007, 14:15

Sieht gut aus (laut http://www.python.org/doc/2.3.5/ref/for.html), allerdings ungetestet, da ich keine 2.3er Version mehr laufen habe.

Kürze Deine CSV-Datei mal auf 3 Zeilen und teste, ob der Fehler weiterhin auftritt. Wenn ja, zeige uns die Zeilen. Falls nicht, versuche es solange mit anderen Zeilen, bis der Fehler auftritt. Dann haben wir den Übeltäter und können schauen, was schief gelaufen ist.
Mephisto
User
Beiträge: 28
Registriert: Mittwoch 17. Januar 2007, 15:52

Das sieht nicht gut aus - das `for` darf nicht eingerückt sein, d.H. auf der selben "Ebene" wie reader = ...

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

aargh! :roll:
danke für das Abnehmen der Tomaten...
:oops:

ich hatte mich zu sehr auf die 2.3er Kompatibilität gestürzt und nicht auf profane Syntaxfehler geachtet. Trotzdem unentschuldbar. Danke Mephisto!
goldfisch
User
Beiträge: 52
Registriert: Sonntag 17. August 2008, 19:52

habe die einrückung korrigiert. jetzt sieht es so aus:

Code: Alles auswählen

import csv
reader = csv.reader(open("/Users/macbook/Desktop/versuch.csv","rb"), delimiter=";")
for row in reader:
	print row
jetzt sieht die fehlermeldung so aus:
Traceback (most recent call last):
File "csvreader.py", line 3, in ?
_csv.Error: newline inside string
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. es muss irgendwie am befehl
for row in reader:
liegen - weil so viele möglichkeiten was falsch zu machen gibts ja wohl bei 4 zeilen gar nicht - oder?
Antworten