10

これを Python で入力すると、次のようになります。

open("file","r").read()

ファイルの正確な内容を文字列として返す場合もあれば、(ファイルが空でなくても) 空の文字列を返す場合もあります。誰かがこれが何に依存しているのか説明できますか?

4

3 に答える 3

34

ファイルの終わり (EOF) に達すると、読み取るデータがなくなるため、.readメソッドは を返します。''

>>> f = open('my_file.txt')
>>> f.read() # you read the entire file
'My File has data.'
>>> f.read() # you've reached the end of the file 
''
>>> f.tell() # give my current position at file
17
>>> f.seek(0) # Go back to the starting position
>>> f.read() # and read the file again
'My File has data.'

ドキュメント リンク:read() tell() seek()

注: 初めてファイルを読み取ったときにこれが発生した場合は、ファイルが空でないことを確認してください。file.seek(0)そうでない場合は、の前に置いてみてくださいread

于 2013-05-04T12:47:49.900 に答える
8

file.read()メソッドのドキュメントから:

EOF がすぐに検出されると、空の文字列が返されます。

ファイル オブジェクトの最後に到達しました。読み取るデータはもうありません。ファイルは、ファイル データへのポインタである「現在の位置」を保持します。これは 0 から始まり、データを読み取ると増加します。

その位置を読み取る方法と変更するfile.tell()方法を参照してください。file.seek()

于 2013-05-04T12:44:45.933 に答える