for line in fd ... fd.tell()

30/06/2009 - 09:35 von Thomas Guettler | Report spam
Hallo,

fd=open('zahlen.txt')
for line in fd:
print line,
break
print 'Position', fd.tell()

zahlen.txt:
1
2
3

fd.tell() liefert 10. Es wird also zwischengespeichert und die Position
stimmt nicht mehr.

Hier die Lösung, damit die Position stimmt. Hat jemand eine bessere Lösung?

fd=open('zahlen.txt')
while True:
line=fd.readline()
if not line:
break
print line,
break
print fd.tell()

Gruß,
Thomas

Thomas Guettler, http://www.thomas-guettler.de/
E-Mail: guettli (*) thomas-guettler + de
 

Lesen sie die antworten

#1 Peter Otten
30/06/2009 - 15:31 | Warnen spam
Thomas Guettler wrote:

Hallo,

fd=open('zahlen.txt')
for line in fd:
print line,
break
print 'Position', fd.tell()

zahlen.txt:
1
2
3

fd.tell() liefert 10. Es wird also zwischengespeichert und die Position
stimmt nicht mehr.

Hier die Lösung, damit die Position stimmt. Hat jemand eine bessere
Lösung?

fd=open('zahlen.txt')
while True:
line=fd.readline()
if not line:
break
print line,
break
print fd.tell()



Alternativ:

for line in iter(fd.readline, ""):
print line,

Peter

Ähnliche fragen