In zeile x springen

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
schnefels
User
Beiträge: 6
Registriert: Samstag 21. Februar 2004, 17:52
Kontaktdaten:

Also ich hab folgendes kleineres Problem. Ich möcht mit n paar Freunden ein kleineres Spiel scripten. Im großen und ganzen steht auch die rohaufteilung auf papier schon weil das meiste nur if-else abfragen sind. Da es aber Punkte gibt die abgespeichert werden sollen und das ganze Spiel für mehrere User laufen soll hab ich einen registrier-button auf die erste seite. Danach kommen 3 Eingabefelder. Name - Passwort - Passwort (wiederh.). Diese Daten werden dann in eine neue textfile mit dem namen username.txt geschrieben (also der eingegebene name.txt). Beim Login steh ich nun aber vor einem Problem. Er soll nur die 2. Zeile in dieser Text-file lesen. Wie ich ihn dazu bring weiß ich aber nicht ...

Wär nett wenn ihr mir da helfen könntet


Gruß schnefels

p.s: wird geschrieben mit Tkinter auf Windows 2000
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Hi schnefels,

das geht am Einfachsten wohl so:

Code: Alles auswählen

f = file(username+".txt","r")
Zeile2 = f[1] # Zeile1 = f[0]
f.close()

Gruß

Dookie
schnefels
User
Beiträge: 6
Registriert: Samstag 21. Februar 2004, 17:52
Kontaktdaten:

zeile2= f[1]
TypeError: unsubscriptable object



kommt leider als fehlermeldung :?
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

uups :oops:

Code: Alles auswählen

f = file(f = file(username+".txt","r")
Zeile2 = list(f)[1] # Zeile1 = list(f)[0]
f.close()
so gehts aber

Dookie
schnefels
User
Beiträge: 6
Registriert: Samstag 21. Februar 2004, 17:52
Kontaktdaten:

hey cool, danke funktioniert :D

Grüßle aus Franken
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

Dookie hat geschrieben:uups :oops:

Code: Alles auswählen

f = file(f = file(username+".txt","r")
Zeile2 = list(f)[1] # Zeile1 = list(f)[0]
f.close()
so gehts aber

Dookie
:shock: :roll: Hi. Das scheint mir aber mehr eine Schnelllösung zu sein, denn mit list würdest du ja die ganze Datei auslesen (mit unter seeeeehr speicherlastig). Also besser nur für dieses Problem benutzen und ansonsten mal eben eine for-Schleife basteln, die dann aber auch nach der x-ten Zeile abbricht... :wink:
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Hi Milan,

stimmt, is eine "quick and dirty" Lösung :wink:

hier die "slow and clean" Version:

Code: Alles auswählen

def oneline(fname, n):
    f = file(fname,"r")
    for i in xrange(n-1):
        f.next()
    result = f.next()
    f.close()
    return result

Zeile2 = oneline(username+".txt", 2)
Gruß

Dookie
Antworten