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

该文件中只有一行,您只需阅读即可。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 回答