如何在Python中重新打开文件?

40 投票
3 回答
47505 浏览
提问于 2025-04-15 18:17

假设我有一个简单的Python脚本:

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

当这个脚本运行时,第一次打印出来的是一个包含文件内容的列表,而第二次打印出来的是一个空列表。这也算是意料之中的事吧。不过,有没有办法把文件“倒回去”,让我可以再读一次呢?还是说最快的方法就是重新打开这个文件?

3 个回答

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
3

对于小文件来说,把文件的内容直接放在内存里可能会快很多。

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

当然,如果文件很大,这样做可能会占用很多内存。

82

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

file.seek(0)

这样就可以了。你需要在第一次使用 readlines() 之后加上这一行。注意,file 必须支持随机访问,这样上面的操作才能奏效。

撰写回答