Seite 1 von 1
Textdatei mit unterschiedlich vielen Leerzeichen splitten
Verfasst: Sonntag 8. Februar 2015, 17:32
von scandium
Hallo Zusammen,
beim Textfile einlesen und splitten nutze ich folgende Befehle:
Code: Alles auswählen
inhalt = [line.rstrip() for line in open('textfile.txt')]
splitted=inhalt[i].split(" ")
Dann schaue ich an welcher Position die Werte in "splitted" sind verwerte sie weiter
Leider ist die Methode problematisch wenn Zahlenwerte in der Datei negativ werden. Das Minuszeichen belegt ein Leerzeichen und die Sortierung kommt durcheinander.
Hier ein Beispiel aus der Textdatei:
"1011 c- -0.38 mis IS_MA[1011] min + 21012518 2111 56027395 1.10 1.00 1.00 293 142 45 16 1066 343 -1 83 26 8 789 255 -1 59 19 8 276 88"
Hat jemand einen Tipp wie man den String splittet unabhängig von der Anzahl der Leerzeichen ?
Danke.
Re: Textdatei mit unterschiedlich vielen Leerzeichen splitte
Verfasst: Sonntag 8. Februar 2015, 17:37
von kbr
Mit regulären Ausdrücken (Modul 're' der Standardlibrary).
Re: Textdatei mit unterschiedlich vielen Leerzeichen splitte
Verfasst: Sonntag 8. Februar 2015, 17:41
von BlackJack
@scandium: Mit `split()` ohne Argument.
Was ist das eigentlich für ein `i` in der zweiten Zeile? Ich hoffe mal du gehst `inhalt` nicht mit einer Schleife über einen Laufindex durch‽
Re: Textdatei mit unterschiedlich vielen Leerzeichen splitte
Verfasst: Sonntag 8. Februar 2015, 18:26
von scandium
Danke, mit split ohne Argument sieht es gut aus.
Ich muss es noch komplett durch testen, aber genau das schein es zu sein.
Eine Frage die mich noch interessiert:
mit welchen Befehl kann ich in der Python Console in das Verzeichnis schauen, wo das Script ausgeführt wird.
Ich möchte gerne die Files gelisted haben, die sich dort befinden.
Mit "dir" oder "ls" hatte ich keinen Erfolg.
Re: Textdatei mit unterschiedlich vielen Leerzeichen splitte
Verfasst: Sonntag 8. Februar 2015, 18:36
von BlackJack
@scandium: In der Standard-Python-Shell kannst Du nur Python-Code ausführen. Da müsstest Du dann zum Beispiel ``os.listdir('.')`` verwenden um eine Liste mit den Dateinamen im aktuellen Arbeitsverzeichnis zu bekommen.
Die IPython-Shell kann externe Programme/Befehle mit einem vorangestellten Ausrufezeichen ausführen (lassen).
Re: Textdatei mit unterschiedlich vielen Leerzeichen splitte
Verfasst: Sonntag 8. Februar 2015, 19:09
von scandium
@BlackJack
Wie lade ich das "os" modul ?
beim Aufruf von: "os.listdir('.')"
bekomme ich folgende Fehlermeldung:
"Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'os' is not defined"
Re: Textdatei mit unterschiedlich vielen Leerzeichen splitte
Verfasst: Sonntag 8. Februar 2015, 19:15
von BlackJack
@scandium: An der Stelle alles stehen und liegen lassen und das Tutorial in der Python-Dokumentation durcharbeiten.

Re: Textdatei mit unterschiedlich vielen Leerzeichen splitte
Verfasst: Sonntag 8. Februar 2015, 19:50
von scandium
Das hatte ich sogar vor der Frage gemacht...
https://docs.python.org/3.4/library/os.html
import os, hätte ich ehr am Anfang erwartet.
Anders rum hätte man auch selbst drauf kommen können
Nächstes mal werfe ich noch mal ein Auge auf die Beispiele, da hätte es auf jeden Fall gestanden.