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.
python auf mac
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 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?
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:
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.
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.
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.
Das wird entweder an der csv-Datei liegen, oder in der falschen Anwendung des csv-Readers (falscher Dialekt oder falsches Quoting).goldfisch hat geschrieben:
Traceback (most recent call last):
File "csv.py", line 4, in ?
_csv.Error: newline inside string
Hast Du die Doku zum csv-Modul gelesen? Insbesondere: http://docs.python.org/lib/csv-fmt-params.html?
Bist Du sicher das es Zeile 4 ist? Die 4 im Traceback bezieht sich auf den Quelltext und nicht auf die CSV-Datei!
auf zeile vier steht im script
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 ,
danke für die gute tat (für den link)!for row in reader:

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 ,
- 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
Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
das habe ich soeben rausgefunden. eigentlich funktionierts
reader = csv.reader(open("versuch.csv","rb"), delimiter=";")
>>>
dann gebe ich ein
reader = csv.reader(open("versuch.csv","rb"), delimiter=";")
>>>
dann gebe ich ein
sollte er dann nicht den inhalt der datei ausgeben? - bei mir passiert gar nichts...for row in reader:
print row
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:
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?
wenn ich dasselbe script in blender mit python 2.3 ausführen lasse, gibt er mir folgende fehlermeldung:
auf linie drei steht: for row in readerFile "csvreader.py", line 3
for row in reader:
^
SyntaxError: invalid syntax
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?
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. 

so sieht die datei csvreader.py aus, die obige fehlermeldung erzeugt
ist das richtig für python 2.3?
Code: Alles auswählen
import csv
reader = csv.reader(open("/Users/macbook/Desktop/versuch.csv","rb"), delimiter=";")
for row in reader:
print row
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.
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.
habe die einrückung korrigiert. jetzt sieht es so aus:
jetzt sieht die fehlermeldung so aus:
for row in reader:
liegen - weil so viele möglichkeiten was falsch zu machen gibts ja wohl bei 4 zeilen gar nicht - oder?
Code: Alles auswählen
import csv
reader = csv.reader(open("/Users/macbook/Desktop/versuch.csv","rb"), delimiter=";")
for row in reader:
print row
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 befehlTraceback (most recent call last):
File "csvreader.py", line 3, in ?
_csv.Error: newline inside string
for row in reader:
liegen - weil so viele möglichkeiten was falsch zu machen gibts ja wohl bei 4 zeilen gar nicht - oder?