Hallo Python-cracks,
kann jemand mir Anfänger einen Tip geben, wie ich eine CSV-Datei in eine Liste mit 2 Dimensionen einlesen kann. Jede Zeile besteht aus einem Datum und haufenweise Zahlen (int und float) durch Komma getrennt. Die Zeilen haben alle die gleiche Anzahl von Elementen.
Nach dem Einlesen (das Ende der Datei kenne ich nicht) will ich die einzelnen Elemente der Zeile verschiedenen Listen-Objekten zuordnen. In der Art:
zeile[i,?]=readline
Datum=Zeile[i,0]
Zahl1=Zeile[i,1]
...
Irgendwie klappt das nicht.
hk
Edit (Leonidas): Topic verändert und verschoben.
[Excel-Export] CSV-Datei in 2-dimensionale Liste einlesen
-
- Python-Forum Veteran
- Beiträge: 2010
- Registriert: Freitag 11. Oktober 2002, 18:00
- Wohnort: Salzburg
- Kontaktdaten:
Hi hk,
meinste so?
Gruß
Dookie
meinste so?
Code: Alles auswählen
f = file("daten.csv", "r")
res = []
for line in f:
res.append(line.split(","))
f.close()
print res
Dookie
[code]#!/usr/bin/env python
import this[/code]
import this[/code]
Hallo Dookie, Hallo Leonidas,
danke für die schnelle Hilfe, schlaft ihr denn nie? Ich hatte ein gutes Gefühl, aber irgendwas mache ich wohl noch falsch. Wenn ich das Modul CSV importieren will kommt diese Meldung. Wo kann man das Modul bekommen?
Wenn ich csv wieder heraus nehme bleibt er an dem Filenamen hängen. Der Programmabschnitt sieht so aus. Ist der wenigsten prinzipiell richtig, so hatte ich die Hinweise verstanden:
und die Fehlermeldung so:
Dann hab ich da noch ein Problem:
Ich möchte ein Tastenfeld mit 10*10 Button also 1 bis 100. Ich dachte ich mache das mit einer 2fachen for-Schleife. Soweit so gut. Über dem Tastenfeld ist ein Label, wenn man einen der Button drückt soll die entsprechende Zahl des Button in dem Label erscheinen und zwar so, dass sie zusätzlich zu den schon gedrückten Zahlen erscheint. Ich habe schon verschiedene Möglichkeiten für command ausprobiert, aber kein bringt das gewünschte Ergebnis. Wie müsste die Funktion "anzeigen" aussehen? Oder geht das ganz anders.
Grüße
hk
danke für die schnelle Hilfe, schlaft ihr denn nie? Ich hatte ein gutes Gefühl, aber irgendwas mache ich wohl noch falsch. Wenn ich das Modul CSV importieren will kommt diese Meldung. Wo kann man das Modul bekommen?
Code: Alles auswählen
Traceback (most recent call last):
File "<string>", line 1, in ?
File "C:\Programme\Python\Programme\test2.py", line 1, in ?
import csv, sys
ImportError: No module named csv
Wenn ich csv wieder heraus nehme bleibt er an dem Filenamen hängen. Der Programmabschnitt sieht so aus. Ist der wenigsten prinzipiell richtig, so hatte ich die Hinweise verstanden:
Code: Alles auswählen
f = file("c:\programme\python\programme\daten.csv", "r")
zeile = []
for line in f:
zeile.append(line.split(","))
Datum[line]=zeile[line][0]
for j in range(1,6,1):
Zahl[line][j]=zeile[line][j]
xZahl[line]=zeile[line][7]
yZahl[line]=zeile[line][8]
und die Fehlermeldung so:
Code: Alles auswählen
Traceback (most recent call last):
File "C:\PROGRA~1\Python\Tools\idle\Debugger.py", line 37, in run
return apply(bdb.Bdb.run, (self,) + args)
File "C:\Programme\Python\lib\bdb.py", line 349, in run
exec cmd in globals, locals
File "<string>", line 1, in ?
File "C:\Programme\Python\Programme\test2.py", line 113, in ?
anzeigen()
File "C:\Programme\Python\Programme\test2.py", line 71, in anzeigen
f = file("c:\programme\python\programme\daten.csv", "r")
IOError: [Errno 2] No such file or directory: 'c:\\programme\\python\\programme\\daten.csv'
Ich möchte ein Tastenfeld mit 10*10 Button also 1 bis 100. Ich dachte ich mache das mit einer 2fachen for-Schleife. Soweit so gut. Über dem Tastenfeld ist ein Label, wenn man einen der Button drückt soll die entsprechende Zahl des Button in dem Label erscheinen und zwar so, dass sie zusätzlich zu den schon gedrückten Zahlen erscheint. Ich habe schon verschiedene Möglichkeiten für command ausprobiert, aber kein bringt das gewünschte Ergebnis. Wie müsste die Funktion "anzeigen" aussehen? Oder geht das ganz anders.
Code: Alles auswählen
lb = Label(hf, bg="#FFFFFF", bd=5, relief="sunken", anchor="e")
lb.grid(row=0, column=0, columnspan=10, sticky="we")
for i in range(1,11,1):
for j in range(0,10,1):
Zahl=((i-1)*10)+(j+1)
b = Button(hf, text=Zahl, width=3, command=anzeigen)
b.grid(row=i, column=j)
hk
hi hk,
wenn du import this im interaktiven Interpreter eingibst gibts diese Ausgabe.
MfG
Andreas
wenn du import this im interaktiven Interpreter eingibst gibts diese Ausgabe.
Code: Alles auswählen
>>> import this
The Zen of Python, by Tim Peters
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!
>>>
MfG
Andreas
Zuletzt geändert von XT@ngel am Sonntag 13. Februar 2005, 23:54, insgesamt 1-mal geändert.
Damit wird das "Zen of Python" importiert und ausgegeben. Probiers einfach mal im interaktiven Interpreter aus.hk hat geschrieben:was wird mit modul this importiert?
Zum csv Modul: Welche Python-Version benutzt Du? Das sollte ab 2.3 dabei sein.
-
- Python-Forum Veteran
- Beiträge: 2010
- Registriert: Freitag 11. Oktober 2002, 18:00
- Wohnort: Salzburg
- Kontaktdaten:
Hi nochmal zu Deinem Problem:
änder mal die Zeile
f = file("c:\programme\python\programme\daten.csv", "r")
in
f = file(r"c:\programme\python\programme\daten.csv", "r")
Gruß
Dookie
änder mal die Zeile
f = file("c:\programme\python\programme\daten.csv", "r")
in
f = file(r"c:\programme\python\programme\daten.csv", "r")
Gruß
Dookie
[code]#!/usr/bin/env python
import this[/code]
import this[/code]