用Python重新打开文件?

时间:2010-01-21 03:57:53

标签: python file

说我有这个简单的python脚本:

file = open('C:\\some_text.txt')
print file.readlines()
print file.readlines()

运行时,第一个打印件打印包含文件文本的列表,而第二个打印件打印一个空白列表。我想这并不完全出乎意料。但有没有办法“回卷”文件,以便我可以再次阅读?或者是重新打开它的最快方式?

3 个答案:

答案 0 :(得分:70)

您可以通过调用seek()重置文件指针:

file.seek(0)

会做到的。在第一次readlines()之后,您需要该行。请注意,file必须支持随机访问才能使上述工作正常工作。

答案 1 :(得分:3)

对于小文件,将文件内容保存在内存中可能要快得多

file = open('C:\\some_text.txt')
fileContents = file.readlines()
print fileContents
print fileContents # This line will work as well.

当然,如果它是一个大文件,这可能会给你的RAM带来压力。

答案 2 :(得分:3)

请记住,您始终可以使用with语句来打开和关闭文件:

from __future__ import with_statement

with open('C:\\some_text.txt') as file:
    data = file.readlines()
#File is now closed
for line in data:
    print line