用Python重新打开文件?
假设我有一个简单的python脚本:用Python重新打开文件?,python,file,Python,File,假设我有一个简单的python脚本: file = open('C:\\some_text.txt') print file.readlines() print file.readlines() 运行时,第一次打印打印包含文件文本的列表,而第二次打印打印空白列表。我想这并不完全出乎意料。但是有没有一种方法可以“回卷”文件以便我可以再次阅读?或者是重新打开它的最快方法?您可以通过调用以下命令重置文件指针: 我会的。在第一行readlines()之后需要该行。请注意,文件必须支持随机访问才能使上述
file = open('C:\\some_text.txt')
print file.readlines()
print file.readlines()
运行时,第一次打印打印包含文件文本的列表,而第二次打印打印空白列表。我想这并不完全出乎意料。但是有没有一种方法可以“回卷”文件以便我可以再次阅读?或者是重新打开它的最快方法?您可以通过调用以下命令重置文件指针:
我会的。在第一行
readlines()
之后需要该行。请注意,文件
必须支持随机访问才能使上述内容正常工作。对于小文件,将文件内容保存在内存中可能会快得多
file = open('C:\\some_text.txt')
fileContents = file.readlines()
print fileContents
print fileContents # This line will work as well.
当然,如果它是一个大文件,这可能会给RAM带来压力。请记住,始终可以使用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
您可以尝试
file.close()
和open
vs.file.seek
并报告所学内容。然后我们可以对你的结果发表评论。嘿,怪兽!如果阿洛克的回答回答了你的问题,请按他回答左边的勾号。这标志着它是“正确的答案”,这样将来其他人就会知道它是有效的。此外,它还为您提供了额外的信誉分数:-)我对一个170k文件进行了一次快速测试,测试时间几乎相同,每个都只有几毫秒。所以没有“最快的”?这就是底线吗?太棒了。让我想起了古老的古老的偷窥和戳东西与古老的C64!我想这是标准的POSIX接口。@Stefano:我想你是对的fseek()
或类似内容的薄型包装。它正是操作系统调用。与基本的偷看和戳无关。没有什么。
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