2016-04-01 27 views
0
with open('index.txt','r') as f: 

    a = [int(x) for x in f.readline().split()] 
    array = [] 
    for line in f: 
     array.append([int(x) for x in line.split()]) 

print array[0] 
print array[1] 
print array[2] 
print array[3] 
print array[4] 

girdi dosyası Kodum neden ilk satırı okuyor?

0 
0 
100 
200 
1 
101 
201 
2 
102 
202 
3 
103 

benim kod 0

[0] 
[100] 
[200] 
[1] 
[101] 

Sadece ikinci görünür çalıştırmak

.

+0

@idjaw 0,0,100,200 ve böylece –

cevap

5

mesele bu çizgidir:

a = [int(x) for x in f.readline().split()] 
Bu dosya Yineleyici ilk satırını yorucudur

, bu nedenle kalan hatlar aracılığıyla sonra döngü, zaten ilkini tükettikten zaman.

Sorunu düzeltmek için, bu kod satırını kaldırın ya da ihtiyacınız varsa, bir dosya içeriği listesi oluşturun (f.readlines()) ve listeden yineleyin ya da bu satırdan sonra dosya başlangıcına geri dönün (f.seek(0)) . Dosyanız özellikle büyükse, dosyanın tamamını belleğe alacağından, f.readlines()'dan kaçınmanız gerektiğini unutmayın.

+0

Evet, readlines ile Perfct çalışır. –

0

bu dosya çok daha kolay bir çözüm sunabilir numpy sayının bir liste basitçe ise:

import numpy 
array = numpy.loadtxt('index.txt', dtype=int) 
İlgili konular