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

これは、何らかの理由で最初の行を除いて、ファイル内のすべての行を印刷しますので、私を助けてください!印刷は最初の行をスキップします

+1

'ライン= file1.readline()'? –

+0

'line = file1.readline()' - 最初の行をスキップしました。 – wwii

答えて

3

行削除:

line=file1.readline() 

最初の行を読み取り、これ、あなたの実際のライン・バイ・ラインの繰り返しを開始する前に、最初の行過去のファイルポインタを移動します。一般に、open(...)によって返されるファイルハンドルは、各行を1回だけ生成するイテレータです。ただし、バック最初にそれを移動することができます。

file1.seek(0) 
+0

ああ、あなたはそれに私を打つ –

+0

これだけで問題を解決しません。ファイル自体は反復処理できません。行を反復処理する必要があります。これが 'file.readlines()'の目的です。 –

+1

@ sam-pytそれはできませんか?私はそうすると思います! – schwobaseggl

1

file1一度だけ(正確にはライン、)その要素のそれぞれをもたらすことができるイテレータである - それは空です。

残りの行を反復処理する前にreadlineを一度呼び出すと、最初の行はすでに読み込まれています。

デモ:

>>> 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 
関連する問題