Seite 1 von 1

file einlesen

Verfasst: Dienstag 25. Mai 2010, 10:16
von honk0190
Hallo Gemeinde,

leider komm ich zur Zeit nicht weiter und brauch eure hilfe.

Ich möchte gerne eine File einlesen, die lines splitten und die jeweiligen werte dann einzelen ansprechen können.

also einlesen und splitten hab ich=

Code: Alles auswählen

class AV:
    def __init__(self, signal, avname, signalname, datentype, wert ):
        self.signal=signal
        self.avname=avname
        self.signalname = signalname
        self.datentyp = datentype
        self.wert = wert


    def zeigMich(self):
        
        #print "AV Name:", self.avname, "signalname:", self.signalname,"signalwert:", self.wert
        return self.signalname
        print self.signalname
alleAV=[]
file = open("test.idx")
for p in file:
    teile=(p.strip()).split(";")
    av =AV(teile[0], teile[1], teile[2], teile[3], teile[4]) #konstruktor
    alleAV.append(av)
for p in alleAV:
    p.zeigeMich()
also so weit, so gut.
aber wie schaffe ich es dann z.b. in zeile 4 den signalnamen anzusprechen?

und wie schreibe ich zum beispiel die signalnamen in eine liste oder txt, so das ich sie noch weiter bearbeiten kann.

THX for any help

Re: file einlesen

Verfasst: Dienstag 25. Mai 2010, 10:38
von EyDu
Hallo.
honk0190 hat geschrieben:aber wie schaffe ich es dann z.b. in zeile 4 den signalnamen anzusprechen?

Code: Alles auswählen

p.signalname
honk0190 hat geschrieben:und wie schreibe ich zum beispiel die signalnamen in eine liste oder txt, so das ich sie noch weiter bearbeiten kann.
Indem du das Python-Tutorial liest ;-)

Edit: Noch zu deinem Code:
- Wenn du mit Python < 3.0 arbeitest, dann sollte AV von "object" erben
- Ein print nach einem return macht wenig Sinn ;-)
- Schau dir mal an, wass die "__str__"-Methode macht und wozu deine zeigMich-Methode dient.
- "file" ist ein äußerst schlechter Name. Du verdeckst damit einen bereits vorhandenen Namen und der Name ist vollkommen nichtssagend.
- die "__init__"-Methode ist kein Konstruktor
- Wirf doch bitte ein Blick in PEP 8, damit du Python programmierst und nicht Java in Python ;-)

Re: file einlesen

Verfasst: Dienstag 25. Mai 2010, 10:43
von BlackJack
@EyDu: Nicht nur lesen, sondern durcharbeiten und verstehen. :-)

Re: file einlesen

Verfasst: Dienstag 25. Mai 2010, 11:06
von honk0190
sorry komme aus der Java ecke

Re: file einlesen

Verfasst: Dienstag 25. Mai 2010, 11:33
von Nebelhom
- die "__init__"-Methode ist kein Konstruktor
@EyDu
Wie wuerde man das dann in python nennen? Hat das einen speziellen namen oder ist das einfach nur die "__init__-Methode"?

Bevor du fragst, ich habe mit java nix am hut. Habe mich nur gewundert ;)

Re: file einlesen

Verfasst: Dienstag 25. Mai 2010, 13:00
von lunar
@Nebelhom: Vielleicht "Objektinitialisierung". Da mit diesem Namen aber niemand was anfangen kann, ist es imho völlig ok, __init__() als Konstruktor zu bezeichnen, denn letztlich programmiert man __init__ nicht anders als die Konstruktoren von Java oder C++.

Man muss nur wissen, dass __init__ tatsächlich nicht die Erzeugung bzw. die Konstruktion eines Objekts, sondern nur dessen Initialisierung durchführt. Die Erzeugung wird von __new__ übernommen. Darum muss man sich aber insbesondere als Anfänger keine Sorgen machen, __new__ ist für fortgeschrittene Probleme und wird nur selten benötigt.

Soll heißen: Du darfst das ruhig Konstruktor nennen.