2

私はPythonでファイルをいじっていたので、これを書きました:

 ifh=open('2.txt','r')  
   for line in ifh:  
     print(line,end="")
 print("Done")
 #ifh=open('2.txt','r')
    for line in ifh:
      print(line)

2番目のループは、2番目のファイルハンドルのコメントを解除した場合にのみファイルを出力します。
何故ですか?
2つ目がないと機能しませんか?

4

5 に答える 5

1

これを使用してファイルの先頭に戻る必要があるため:

ifh.seek(0)

ファイルをopen再度読み取ると、ファイルの現在の位置が先頭にリセットされます。

于 2013-03-27T07:06:00.603 に答える
1

これは、最初のループが終了した後、ifhの現在の位置がファイルの最後にあるためです。その時点で、読み取るデータはありません。

データを再度読み取るには、を使用ifh.seek(0)してファイルの先頭に戻る必要があります。

于 2013-03-27T07:06:14.953 に答える
0

を印刷すると、ファイルの最後になりますDone。あなたはifh.seek(0)再び最初に到達するために行うことができます。

于 2013-03-27T07:06:17.290 に答える
0

実施:ifh.seek(0)2番目のループの前。

これは、ファイルからすべての行を読み取り、seekメソッドがファイルの最初のバイトに移動し、それを再度読み取ることができるためです。

于 2013-03-27T07:07:22.580 に答える
0

forループの前に閉ループを作成することもできます。

while True:
    for line in ifh:
        print(line,end=" ")
于 2013-03-27T07:14:47.667 に答える