Seite 1 von 1

Problem mit readline()

Verfasst: Samstag 26. Januar 2019, 15:02
von hamza.balci
Hallo,
ich habe ein Problem beim Ablesen einer Textdatei. Es wird immer eine Zeile übersprungen, wenn ich den Text ausgebe.

Code: Alles auswählen

k = input()
obj = open((k), "r")
for lines in obj:
 zwl = obj.readline()
 print (zwl)
obj.close

Die Textdatei vorher:
1
2
3
4
5
6
7
Ausgegeben wird aber nur:
2

4

6

Was ist das Problem ?

Re: Problem mit readline()

Verfasst: Samstag 26. Januar 2019, 16:19
von __deets__
Das du zweimal eine Zeile liest. Die for-Schleife liefert dir doch schon eine Zeile. Du benennst die falsch mit "lines", weil das natuerlich immer nur eine Zeile ist. Aber ein simples

Code: Alles auswählen

for line in fileobj
ist alles was du brauchst.

Re: Problem mit readline()

Verfasst: Samstag 26. Januar 2019, 16:26
von ArtooDetoo
Abgesehen davon, sollte man Dateien mithilfe von with öffnen ( https://www.pythonforbeginners.com/file ... -in-python ).

Re: Problem mit readline()

Verfasst: Samstag 26. Januar 2019, 16:51
von __blackjack__
@hamza.balci: Wobei Du da auch noch Glück hast das tatsächlich nur jede zweite Zeile übersprungen wird, denn der Iterator ist effizienter als `readline()` denn er kann auch mehr als nur eine Zeile lesen und zwischenspeichern, während `readline()` tatsächlich nur bis zum nächsten Zeilenende liest. Iterieren und `readline()` zu mischen ist also gar keine gute Idee.

Re: Problem mit readline()

Verfasst: Sonntag 27. Januar 2019, 12:00
von hamza.balci
__deets__ hat geschrieben: Samstag 26. Januar 2019, 16:19 Das du zweimal eine Zeile liest. Die for-Schleife liefert dir doch schon eine Zeile. Du benennst die falsch mit "lines", weil das natuerlich immer nur eine Zeile ist. Aber ein simples

Code: Alles auswählen

for line in fileobj
ist alles was du brauchst.
Macht keinen Unterschied. Es wird trotzdem eine Zeile übersprungen.

Re: Problem mit readline()

Verfasst: Sonntag 27. Januar 2019, 12:10
von ThomasL
@hamza wie sieht denn dein Code jetzt aus?
Was erwartest du von uns, wie wir dir helfen sollen, ohne das du uns zeigst, was bei dir keinen Unterschied macht?

Re: Problem mit readline()

Verfasst: Sonntag 27. Januar 2019, 12:12
von __deets__
Wird es garantiert nicht. Bitte zeige deinen Code.

Re: Problem mit readline()

Verfasst: Sonntag 27. Januar 2019, 12:13
von hamza.balci
__deets__ hat geschrieben: Samstag 26. Januar 2019, 16:19 Das du zweimal eine Zeile liest. Die for-Schleife liefert dir doch schon eine Zeile. Du benennst die falsch mit "lines", weil das natuerlich immer nur eine Zeile ist. Aber ein simples

Code: Alles auswählen

for line in fileobj
ist alles was du brauchst.
Sorry Kommentar falsch gelesen. Hat alles geklappt. Danke !

Re: Problem mit readline()

Verfasst: Sonntag 27. Januar 2019, 12:16
von hamza.balci
Danke nochmals. Ich habe nicht erwartet, dass ihr so schnell antwortet. Wirklich sehr gutes Forum.