Seite 1 von 1
Mehr Dimensioale Arrays
Verfasst: Mittwoch 9. August 2006, 19:44
von mutsch
Hallo Leute!!! Bin auch ein ziemliches Greenhorn in Sachen Pyton.
Ich Lese mit meinem Pythocode ein CSV File aus...
Code: Alles auswählen
Filename="C:\TAGURX.csv"
#Init reader
reader = csv.reader(open(Filename , "rb"))
#Read Dat5a from CSV File
for row in reader:
#Split row string in more strings
SingleRowValues= str(row.pop(0)).split(';')
Soweit ist die Sache ja ganz einfach...
Ich möchte dann die einzelnen SingleRowValues[0] in einen Mehrdimmensionalen Array schreiben.
DATA[ROW_INDEX][VALUE_INDEX]
Wie tu ich da am besten?
Edit by Gerold: Code in Code-Tags gesetzt
Verfasst: Mittwoch 9. August 2006, 20:08
von gerold
Hi Mutsch!
Willkommen und hier der obligatorische Hinweis auf die FAQ:
http://www.python-forum.de/faq.php#21
mfg
Gerold
Re: Mehr Dimensioale Arrays
Verfasst: Mittwoch 9. August 2006, 20:20
von gerold
mutsch hat geschrieben:Ich möchte dann die einzelnen SingleRowValues[0] in einen Mehrdimmensionalen Array schreiben.
Hi Mutsch!
Wie sieht deine CSV-Datei aus? Sind die Werte mit "," oder mit ";" getrennt? Egal, da du den Trenner angeben kannst. Es gibt mehrere Möglichkeiten, aber diese hier dürfte für einen Anfänger am Einfachsten sein.
Code: Alles auswählen
import csv
filename = "xxx.csv"
reader = csv.reader(open(filename , "r"), delimiter = ";")
rows = []
for row in reader:
if row: # Also nur, wenn auch wirklich etwas in der Zeile steht
rows.append(row)
print rows
mfg
Gerold
Re: Mehr Dimensioale Arrays
Verfasst: Mittwoch 9. August 2006, 21:08
von BlackJack
gerold hat geschrieben:Code: Alles auswählen
import csv
filename = "xxx.csv"
reader = csv.reader(open(filename , "r"), delimiter = ";")
rows = []
for row in reader:
if row: # Also nur, wenn auch wirklich etwas in der Zeile steht
rows.append(row)
print rows
Kann es denn passieren das in einer Zeile nichts steht!?
Ansonsten wäre es kürzer wenn man die Schleife weglässt und einfach ``rows = list(reader)`` schreibt.
Re: Mehr Dimensioale Arrays
Verfasst: Donnerstag 10. August 2006, 07:34
von gerold
BlackJack hat geschrieben:Kann es denn passieren das in einer Zeile nichts steht!?
Hi BlackJack!
Also, ich sehe so etwas ziemlich oft. Meist ist es ein Zeilenumbruch am Ende der Datei, der Schwierigkeiten bereitet.
Da ich so oft CSV-Dateien mit leeren Zeilen sehe, verstehe ich nicht warum es kein Flag gibt, das dem Reader mitteilt, dass man nur Datenzeilen auslesen möchte. Auch das Ausfiltern von Kommentarzeilen sollte, meines Erachtens, direkt in den Reader eingebaut sein.
Um dieses Problem zu umgehen, arbeite ich meist so. (allerdings ist das nicht unbedingt Anfängerfreundlich):
Code: Alles auswählen
import csv
filename = "xxx.csv"
f = file(filename , "r")
csvlines = ( line for line in f if line and not line.startswith("#") )
reader = csv.reader(csvlines, delimiter = ";")
rows = list(reader)
print rows
f.close()
lg
Gerold
Verfasst: Sonntag 13. August 2006, 19:37
von mutsch
Vielen Dank für die Tipps