Inputzeilen aus einer Datei

02/09/2009 - 15:38 von Ole Streicher | Report spam
Hallo,

sorry dass ich mal wieder eine "stupid question" habe, aber: wie parse
ich sinnvollerweise Textzeilen aus einer Datei?

Ich habe eine Datei gegeben, die etwa so aussieht:

1234 432.7 134.5 11
1988 0.05 7.5 19
...

die möchte ich gerne irgendwie einlesen. Gibt es in Python sowas wie
scanf?

Mein erster Ansatz war

file = open('filename')
tupel = [ [int(line[:4]), float(line[8:13]), float(line[15:20]), int(line[20:])]
for line in file ]
file.close

aber der verwendet fixe Spaltenpositionen, was sicher nicht der letzte
Schrei ist.

Nebenfrage: schreibt man hier eventuell besser folgendes?

with file = open('filename'):
tupel = ...

Viele Grüße

Ole
 

Lesen sie die antworten

#1 Tobias Klausmann
02/09/2009 - 16:11 | Warnen spam
Ole Streicher wrote:
Ich habe eine Datei gegeben, die etwa so aussieht:

1234 432.7 134.5 11
1988 0.05 7.5 19
...

die möchte ich gerne irgendwie einlesen. Gibt es in Python sowas wie
scanf?



Wozu?

for line in open('filename'):
tupel = line.split() # split() hat optionale parameter
...

Eigentlich ganz einfach :)

Gruss,
Tobias


/* Binary compatibility is good American knowhow fuckin' up. */
linux-2.2.16/arch/sparc/kernel/sunos_ioctl.c

Ähnliche fragen