如果我做:

os.chdir(path)
f = open(file,"r")

lines = f.readlines()
print "without assignment " + str(len(f.readlines()))
print "with assignment     " + str(len(lines))

我希望输出是一样的,但事实并非如此:
without assignment 0
with assigment     1268

为什么是这样?

最佳答案

文件对象f是文件行上的迭代器。 f.readlines()将文件光标移到末尾,但将这些行保存在lines中,这就是第二个示例对您有用的原因。第一个示例不起作用,因为您已到达文件末尾,并且没有剩余的行需要读取。如果要进行此操作,可以使用f.seek(0)将光标移回文件的开头。

关于python - 为什么我需要为f.readlines()分配变量以获取其长度?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11651670/

10-12 19:55