7

私はPythonのオブジェクトを文字列として含むファイルを持っています、そしてそれを開いて私が示すようなことをします:

>>> file = open('gods.txt')
>>> file.readlines()
["{'brahman': 'impersonal', 'wishnu': 'personal, immortal', 'brahma': 'personal, mortal'}\n"]

しかし、行がなくなったため、問題が発生しました。

>>> f.readlines()
[]
>>> f.readline(0)
''

なぜそれがヘッピングしているのですか、そしてどうすればファイルの行へのアクセスを維持できますか?

4

4 に答える 4

11

そのファイルには 1 行しかなく、それを読むだけです。readlines はすべての行のリストを返します。ファイルを読み直したい場合は、 file.seek(0) を実行する必要があります

于 2012-05-09T19:26:41.173 に答える
10

ファイル内の位置が移動しました

f = open("/home/usr/stuff", "r")
f.tell()
# shows you're at the start of the file
l = f.readlines()
f.tell()
# now shows your file position is at the end of the file

readlines() はファイルの内容のリストを提供し、そのリストを何度も読むことができます。ファイルを読み取った後にファイルを閉じ、ファイルから取得した内容を使用することをお勧めします。ファイルの内容を何度も読み込もうとしないでください。すでに取得しています。

于 2012-05-09T19:34:09.050 に答える
3

結果を変数に保存するか、ファイルを再度開きますか?

lines = file.readlines()
于 2012-05-09T19:26:23.963 に答える
2

行リストを変数に保存して、必要なときにいつでもアクセスできます。

file = open('gods.txt')
# store the lines list in a variable
lines = file.readlines()
# then you can iterate the list whenever you want
for line in lines:
  print line
于 2012-05-09T19:28:41.577 に答える