Einlesen und Weiterverarbeiten von Daten

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.
Antworten
Mini
User
Beiträge: 3
Registriert: Montag 17. Dezember 2007, 13:39

Grüß euch,

ich bin ein Python-Neuling und hätte da mal die ein oder andere Frage:

Ich will Messdaten in Blender verwenden. Nun müssen diese über ein Python script eingelesen werden und evtl. noch bearbeitet werden.
Die Messdaten kommen aus Matlab und nun frage ich mich wie ich die Daten am besten einlese? Habe mal zum Test die Daten in verschiedenen Formaten abgespeichert (.csv,.xls,.txt.) um sie mit Python einzulesen und zu verarbeiten. Aber komme da nicht zu recht. Die Datensätze liegen in 12Spalten mit je ca. 10k Werten vor. Wenn ich mit Python einlese bekomm ich es nicht hin die Daten nach Spalten zu trennen bzw. die einzelnen Werte mathematisch weiter zu verwenden.
Bin dankbar für jede Hilfe

Gruß Mini
BlackJack

Für CSV-Daten gibt's das `csv`-Modul. Die Zeichenketten müssen dann noch mit `int` oder `float` in Zahlen umgewandelt werden, damit man damit auch rechnen kann.
Mini
User
Beiträge: 3
Registriert: Montag 17. Dezember 2007, 13:39

Danke, dann werde ich mir das mal angucken und gucken ob ich den Austausch hinbekomme.
Kennt denn noch zufällig wer eine gute Seite zum Programmieren von Python in Blender? Oder hat jemand damit Erfahrung?

Gruß Mini
Benutzeravatar
knekke
User
Beiträge: 100
Registriert: Freitag 29. Oktober 2004, 17:23
Wohnort: Schweden

Die Blender Python-API gibt es hier. Sind z.T. auch gute Codebeispiele dabei.
Ansonsten mal bei BlenderArtists in der Rubrik Python&Plugins blättern... Wenn es ein deutsches Forum sein soll gibt es auch noch BlendPolis.
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

Hier ist auch noch etwas: [wiki]Blender[/wiki]
Offizielles Python-Tutorial (Deutsche Version)

Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
Mini
User
Beiträge: 3
Registriert: Montag 17. Dezember 2007, 13:39

Danke, werde gleich mal darin stöbern!

Also das Einlesen der Daten funktioniert nun. Jetzt werde ich mich mit Python in Blender rumschlagen müssen. Hat hier vllt schon jemand mit Python Bones(in Blender) animiert?

Gruß Mini
sea-live
User
Beiträge: 440
Registriert: Montag 18. Februar 2008, 12:24
Wohnort: RP

geht das nicht einfacher wenn mann über eine TXT datei geht

ich hab das gleiche problem
einlesen der aktien historie zum auswerten

Code: Alles auswählen

import urllib
symbol_liste={}
Symbol="ES6"
Monatvon="00"
Tagvon="1"
Jahrvon="2008"
Monatbis="01"
Tagbis="15"
Jahrbis="2008"
in_file = open("tecdax.txt", "r")
x=0
while True:
    in_line = in_file.readline()
    if not in_line:
        break
    in_line = in_line[:-1]
    symbol_liste[x] = in_line
    x=x+1   
in_file.close()
print "eingelesen"
#len(symbol_liste)
x=0
while x < len(symbol_liste):
    url=("http://ichart.yahoo.com/table.csv?s=%s&a=%s&b=%s&c=%s&d=%s&e=%s&f=%s&g=d&ignore=.csv" %(symbol_liste[x],Monatvon,Tagvon,Jahrvon,Monatbis,Tagbis,Jahrbis))
    print url
    req = urllib.urlopen(url)
    f = file("%s.csv"%(symbol_liste[x]), 'w')
    f.write(req.read())
    f.close()
    req.close()
    print symbol_liste[x],' erledigt'
    x=x+1
print 'ende'
tecdax.txt
MOR.DE
IDS.DE
GPC.DE
FNT.DE
ES6.DE
DRW3.DE
EPC.DE
CGY.DE
BC8.DE
BBZ.DE
AUS.DE
AIX.DE
AFX.DE
KBC.DE
ADV.DE
MTH.DE
NDX1.DE
PFV.DE
QCE.DE
QIA.DE
QSC.DE
RSI.DE
SNG.DE
SOW.DE
SWV.DE
TA6.DE
UTDI.DE
VTW.DE
WDI.DE
BlackJack

Ich weiss nicht was da jetzt "einfacher" sein soll, da Dein Quelltext nicht viel mit dem Problem zu tun hat, was hier Thema ist. Es geht um tabellenartige Daten in einer Textdatei. Die Daten sind "2D" und nicht eine Liste von Symbolen.

Dein Quelltext ist auch übermässig kompliziert. Ein Dictionary `symbol_liste` zu nennen ist verwirrend. Hier hätte auch wirklich eine *Liste* als Datenstruktur gereicht. Und dann gibt es ``for``-Schleifen. Das ist wesentlich einfacher und übersichtlicher als ``while``-Schleifen, bei denen man den Index selbst per Hand verwaltet. Insbesondere wenn man den Index überhaupt nicht braucht.

Ungetestet:

Code: Alles auswählen

import urllib2

def main()
    jahr_von, monat_von, tag_von = (2008, 0, 1)
    jahr_bis, monat_bis, tag_bis = (2008, 1, 15)
    
    symbol_file = open('tecdax.txt')
    symbole = [s.strip() for s in symbol_file]
    symbol_file.close()

    for symbol in symbole:
        url = ('http://ichart.yahoo.com/table.csv?'
               's=%d&a=%02d&b=%d&c=%d&d=%02d&e=%d&f=%d&g=d&ignore=.csv'
               % (symbol, monat_von, tag_von, jahr_von,
                          monat_bis, tag_bis, jahr_bis))
        request = urllib2.urlopen(url)
        out_file = open(symbol + '.csv', 'w')
        out_file.write(request.read)
        out_file.close()
        request.close()
sea-live
User
Beiträge: 440
Registriert: Montag 18. Februar 2008, 12:24
Wohnort: RP

danke ich programmiere erst seit 5tagen mit pyton komme von avr_bascom und C+

ich hab da noch sehr grosse anfangsschwirigkeiten

werde in anderem thread mal weiterforschen und posten danke

PS DEIN BEISPIEL Läuft bei mir nicht errror
Antworten