Seite 1 von 1
In zeile x springen
Verfasst: Donnerstag 8. Juli 2004, 18:17
von schnefels
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
Verfasst: Donnerstag 8. Juli 2004, 18:25
von Dookie
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
Verfasst: Donnerstag 8. Juli 2004, 18:32
von schnefels
zeile2= f[1]
TypeError: unsubscriptable object
kommt leider als fehlermeldung
Verfasst: Donnerstag 8. Juli 2004, 18:37
von Dookie
uups
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
Verfasst: Donnerstag 8. Juli 2004, 18:57
von schnefels
hey cool, danke funktioniert
Grüßle aus Franken
Verfasst: Donnerstag 8. Juli 2004, 19:19
von Milan
Dookie hat geschrieben:uups
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
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...
Verfasst: Donnerstag 8. Juli 2004, 20:03
von Dookie
Hi Milan,
stimmt, is eine "quick and dirty" Lösung
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