2016-05-17 3 views
0

Я пытаюсь прочитать текстовый файл в python. Первая строка файла - это просто имя файла, и в каждой строке файла содержится реальное число. Я новичок в python и пытаюсь разобрать файл и сохранить числа в одном массиве (игнорируя первую строку). Любая помощь будет высоко оценен. Спасибо.Сохранить данные из текстового файла в массив в Python

ответ

2

Попробуйте это,

with open(filename, 'r') as f: 
    next(f) # discard the first line 
    l = [int(line) for line in f] # save numbers to a list 

Прочитайте первые п строк, используйте itertools.islice,

import itertools 

with open(filename, 'r') as f: 
    lines_gen = itertools.islice(f, 1, num_lines) # start from 1, read num_lines 
    l = [int(line) for line in lines_gen] 
+0

Это, кажется, работает нормально. Однако после 501 строк данных есть еще одна строка, которая является строкой. Могу ли я каким-либо образом создать массив чисел, который начинается с строки 2 и заканчивается в строке 500? – Aspro

+1

Вам действительно не нужен вызов 'rstrip()', 'int' может обрабатывать конечные пробелы. – martineau

+0

@Arya, попробуйте это, 'l = [int (строка) для строки в f.readlines [2: 501]]' – SparkAndShine

2

Откройте его, пропустите первую строку и переведите остальные в целые числа (с вызовом list(), чтобы сохранить его в памяти - необходимо только, если вы планируете пройти через него более одного раза или изменить его).

with open('f.txt') as f: 
    next(f) 
    data = list(map(int, f)) 
+0

Это очень путинский путь! Я предлагаю использовать этот. Обратите внимание, что это использование следующего для python 3. для python 2, используйте f. readline() – silviomoreto

+2

@silvio: 'next (f)' будет отлично работать и в Python 2. – martineau

1

Вы можете сделать это:

your_array = [] 
with open('arrayfile.txt', 'r') as f: 
    f.readline() # skip first line 
    for number in f: 
     your_array.append(int(number)) 
Смежные вопросы