2016-05-17 4 views
0

Ich versuche, eine Textdatei in Python zu lesen. Die erste Zeile der Datei ist nur der Name der Datei und der Rest jeder Zeile der Datei enthält eine reelle Zahl. Ich bin neu in Python und versuche, die Datei zu analysieren und die Zahlen in einem einzigen Array zu speichern (Ignorieren der ersten Zeile). Jede Hilfe würde sehr geschätzt werden. Vielen Dank.Speichern von Daten aus einer Textdatei in ein Array in Python

Antwort

2

die Sie interessieren,

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

die ersten n Zeilen lesen, verwenden 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

Das scheint gut zu funktionieren. Nach 501 Datenzeilen gibt es jedoch eine weitere Zeile, die eine Zeichenfolge darstellt. Kann ich in irgendeiner Weise nur ein Zahlenfeld erstellen, das bei Zeile 2 beginnt und bei Zeile 500 endet? – Aspro

+1

Sie brauchen den 'rstrip()' Aufruf nicht wirklich, 'int' kann nachfolgende Whitespaces verarbeiten. – martineau

+0

@Arya, probiere das, 'l = [int (Zeile) für Zeile in f.readlines [2: 501]]' – SparkAndShine

2

Öffnen Sie es, überspringen Sie die erste Zeile und ordnen Sie den Rest ganzen Zahlen zu (mit einem list() Aufruf, um es im Speicher zu speichern - nur notwendig, wenn Sie es mehrmals durchlaufen oder mutieren).

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

Dies ist ein sehr pythonischer Weg! Ich schlage vor, diesen zu verwenden. Beachten Sie, dass diese Verwendung von next für python 3 ist. Für python 2 verwenden Sie f. readline() – silviomoreto

+2

@silvio: 'next (f)' würde auch in Python 2 funktionieren. – martineau

1

Sie können dies tun:

your_array = [] 
with open('arrayfile.txt', 'r') as f: 
    f.readline() # skip first line 
    for number in f: 
     your_array.append(int(number)) 
Verwandte Themen