关于阅读文件
当我尝试读取文件,还有描述为以下关于阅读文件
代码一个奇怪的结果是
f1=file('u1.base')
for line in f1.readlines()[0:5]:
print line
train=f1.readlines()
f2=file('u1.test')
test=f2.readlines()
l_train=len(train)
l_test=len(test)
print l_train,l_test
结果是
1 1 5 874965758
1 2 3 876893171
1 3 4 878542960
1 4 3 876893119
1 5 3 889751712
0 20000
这表明那列车的长度是0.我不知道原因。希望你能帮助我〜
第一个f1.readlines()
读取所有行(文件位置在文件末尾)。第二个f1.readlines()
立即遇到EOF并返回空列表。您可以拨打f1.seek(0)
将文件位置移动到文件的开头。
为只读5行:
所有的代码已经失去了正确的缩进的from itertools import islice
for line in islice(f1, 5):
print line,
中的所有文件,或者如果你要将整个文件读入内存,只做一次,然后打印前5行。 – geoffspear
@Wooble:'islice(f1,5)'只读5行。它不会将所有文件读入内存。如果你在谈论'f1.readlines()',那么在答案中“读取所有行”意味着整个文件被读入内存。 – jfs
我的意思是OP打算在打印前5行后将整个文件读入内存,因此没有真正的理由要先读取前5行,然后立即再读取它们。 – geoffspear
第一,不能明确地破译,解决这个问题。第二:u1.base中有多少行?你正在阅读“f1.readlines()[0:5]” – ZalewaPL