file einlesen

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
honk0190
User
Beiträge: 9
Registriert: Dienstag 20. April 2010, 12:43

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
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

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 ;-)
Das Leben ist wie ein Tennisball.
BlackJack

@EyDu: Nicht nur lesen, sondern durcharbeiten und verstehen. :-)
honk0190
User
Beiträge: 9
Registriert: Dienstag 20. April 2010, 12:43

sorry komme aus der Java ecke
Nebelhom
User
Beiträge: 155
Registriert: Mittwoch 19. Mai 2010, 01:31

- 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 ;)
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.
Antworten