2017-11-26 3 views
0
file1=open("filex.txt","r") 
line=file1.readline() 
for line in file1: 
    print(line,end="") 

So druckt alle Zeilen in der Datei, außer der ersten Zeile aus irgendeinem Grund, bitte helfen Sie mir bitte!Drucken überspringt die erste Zeile

+1

'line = file1.readline()'? –

+0

'line = file1.readline()' - Sie haben die erste Zeile übersprungen. – wwii

Antwort

3

die Zeile entfernen:

line=file1.readline() 

, die die erste Zeile liest und bewegt somit den Dateizeiger über die erste Zeile, bevor Sie Ihre aktuelle Zeile-für-Zeile-Iteration starten. Im Allgemeinen ist ein Datei-Handle, wie es von open(...) zurückgegeben wird, ein Iterator, der jede Zeile nur einmal erzeugt. Sie können jedoch bewegen, es zu Anfang zurück durch:

file1.seek(0) 
+0

Aww, du schlägst mich dazu –

+0

das allein wird das Problem nicht lösen. Eine Datei selbst kann nicht durchlaufen werden, die Zeilen müssen iteriert werden. Dafür steht 'file.readlines()'. –

+1

@ sam-pyt Es wird nicht? Ich denke, das tut es! – schwobaseggl

1

file1 ist ein Iterator, der jedes seiner Elemente ergeben können (Linien, um genau zu sein) nur einmal - dann er leer ist.

Durch einmaliges Aufrufen von readline vor dem Iterieren der restlichen Zeilen wurde die erste Zeile bereits gelesen.

Demo:

>>> fake_file = iter('''line1 
... line2 
... line3'''.splitlines()) 
>>> 
>>> line = next(fake_file) # mimics your call to readline 
>>> line 
'line1' 
>>> for line in fake_file: 
...  print(line) 
... 
line2 
line3 
>>> for line in fake_file: 
...  print(line) 
... 
>>> # empty 
Verwandte Themen