0

ファイルを読み取ろうとすると、次のような奇妙な結果が表示されます

コードは

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 であることを示しています。理由はわかりません。あなたが私を助けてくれることを願っています〜

4

1 に答える 1

1

最初f1.readlines()の行はすべての行を読み取ります (ファイルの位置はファイルの末尾です)。2 番目f1.readlines()はすぐに EOF に遭遇し、空のリストを返します。f1.seek(0)ファイルの位置をファイルの先頭に移動するために呼び出すことができます。

5 行だけを読み取るには:

from itertools import islice

for line in islice(f1, 5):
    print line,
于 2012-12-13T12:40:13.313 に答える