2016-04-01 4 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] 

Входной файлПочему мой код не читает первую строку?

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

Когда я запускаю мой код

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

Просто второй 0 появляется.

+0

@idjaw 0,0,100,200 и так далее –

ответ

5

Проблема эта линия:

a = [int(x) for x in f.readline().split()] 

Это утомительно первую строку файла итератор, поэтому, когда вы затем перебрать оставшиеся строки, вы уже поглотил первый.

Чтобы устранить эту проблему, удалите эту строку кода или, если вам нужно, сгенерируйте список содержимого файла (f.readlines()) и выполните итерацию по списку или вернитесь к началу файла после этой строки (f.seek(0)) , Обратите внимание, что если ваш файл особенно большой, следует избегать f.readlines(), так как это приведет к тому, что весь файл будет сохранен в памяти.

+0

Да, работает perfct с readlines. –

0

Если этот файл является просто список целых чисел NumPy может предложить гораздо более простое решение:

import numpy 
array = numpy.loadtxt('index.txt', dtype=int) 
Смежные вопросы