formatierte Tabelle einlesen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Heinzi
User
Beiträge: 2
Registriert: Donnerstag 13. Oktober 2011, 14:02

Hallo,
ich hab eine Tabelle mit 39 "Spalten" (u ca 1000 Zeilen) und ich brauche die Informationen (Zahlen:integer und float) aus Spalte 4 und 23. Das Problem ist, dass split nicht funktioniert, weil teilweise die Spalten nicht separiert sind:

0 0 1 1234.56 234.56 1 1.2345 34567 ...
0 0 2 4567.90 567.89 1 2.3456-23456 ...

In fortran kann man das format eingeben
read(1,'(3i4,2f8.2,i4,6f8.4...)')
Gibt es so etwas in Python auch (zum einlesen!)?
Ueber Tips wuerde ich mich freuen.
Trichter
User
Beiträge: 45
Registriert: Montag 20. April 2009, 10:21

Wenn du genau weißt, wieviele Zeichen jeder Eintrag in der Tabelle hat, könntest du statt split einfach den gesuchten Teil per slicing aus jeder Zeile auslesen.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Wenn Spalten nicht (irgendwie) separiert sind, woher weiß man dann, was eine Spalte ist? ;-) Letztlich muss es dann ja über die Position trennbar sein, also fixe Spaltenbreiten oder zumindest fixe Spaltenbreiten in einer "Subgruppe". Du müsstest da einfach mal mehr Details zur Syntax geben. Slicing wurde ja schon für den Fall der fixen Spaltenbreite genannt.

`numpy` wird bei solchen Konstrukten gerne mal genannt - evtl. kann man da direkt Angaben zum Slicing machen?
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
degon
User
Beiträge: 28
Registriert: Montag 14. Juni 2010, 12:03

schau dir mal genfromtxt aus dem numpy package an, das sollte das richtige für dich sein. dort kannst du die spalten angeben.
Heinzi
User
Beiträge: 2
Registriert: Donnerstag 13. Oktober 2011, 14:02

Vielen Dank fuer die Tipps!
Das mit dem slicing hat prima geklappt.
Werd mir auch mal das numpy Packet genauer ansehen.
Vielen Dank nochmal!
Antworten