python eingabedatei

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
student001

hi
ich möchte eine Python-Funktion, die eine Eingabe-Datei mit mehreren Zeilen der Form
Name Studenlohn AnzahlStunden
einliest und für jede Zeile ausgibt
Name Stundenlohn*AnzahlStunden
falls AnzahlStunden größer als 0 ist.
wie läuft das ab?
fs111
User
Beiträge: 170
Registriert: Samstag 15. November 2003, 11:42
Kontaktdaten:

Datei zeilenweise einlesen, Zeilen zerlegen, Zeichenketten in float umwandeln, berechnen, ausgeben.

Mal ehrlich, du fragst, weil Du keine Lust hast Dich damit ein bisschen zu beschäftigen, oder?

fs111
student001

mal ehrlich: ich frage, weil ich keine Ahnung hab wie das geht, weil ich noch Anfänger in dem Gebiet bin.
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

Hey hey hey, bitte nicht flamen. Auch wenn fs11 nicht ganz unrecht hat, dass man sich man sich selbst damit beschäftigen muss (wir hatten schon einige Fälle im Forum, wo das nicht der Fall war), kann man ja immerhin Anreize dazu geben. Hier mal etwas kommentierter Quellcode:

Code: Alles auswählen

f=file("xyz.txt","r") #Datei öffnen und file-Obj anlegen
for zeile in f:
    zeile=zeile.replace("\n","") #Zeilenumsprung abtrennen
    Name,Studenlohn,AnzahlStunden=zeile.split() #Werte auftrennen und als Strings in Variablen speichern
    if float(AnzahlStunden)>0:
        print Name,float(Stundenlohn)*float(AnzahlStunden)
f.close() #Datei wieder schließen
fs111
User
Beiträge: 170
Registriert: Samstag 15. November 2003, 11:42
Kontaktdaten:

Mir stellt sich da nur ernsthaft die Frage, ob Du überhaupt mal ein Tutorial oder ein bisschen Doku zu Python gelesen hast. Ich will Dich nicht angreifen, aber Deine Frage erweckt wirklich den Anschein, dass Du keine eigenen Anstrengungen unternommen hast, das Problem zu lösen...


@Milan

Da Du ja schon eine Lösung gepostet hast, noch eine kleine Anregung:

Ich würde in den ausgelesenen Werten noch vor der Umwandlung in float evtl. auftretenden "," durch "." ersetzen. Da wir im deutschprachigen Raum ja Kommazahlen haben, und keine "Punktzahlen", ist wohl davon auszugehen, dass die in der Datei wohl so vorliegen.

Grüße fs111
Antworten