Hallo Ich bin gerade dabei ein Praktikum im Bereich E-Technik Informatik zu machen. Hierfür muss ich mich mit Python beschäftigen. Leider bin ich hier sehr unerfahren und gerade erst dabei mir die Sprache bei zu bringen. Hier meine Fragstellung wir haben einen versuch Aufbau, der zu bestimmten Zeiten Messwerte ermittelt und diese in einem Text File am nächsten Tag speichert. Das ganze sieht in etwa so aus: Messpunkt1 1 2 3 4 5 6 Messpunkt2 2 44 66 33 33 33 Ich möchte das Textfile nun zeilenweis einlesen und dann die einzelnen Elemente in einem Array abspeichern. Soll so aussehen: Auswertung[0]= Messpunkt1 Auswertung[1]= 1 Auswertung[2]= 2 Auswertung[3]= 3 Etc. Das zeilenweise einlesen funktioniert soweit recht gut. Mein Problem sind die Leerzeichen. Mit .split kann ich zwar die Zeile aufsplittern und mir eine for schleife auch Werte in das Array ablegen, aber leider legt er auch die Leerzeichen mit ab. Kann mir jemand helfen wie ich die Leerzeichengeschickt weglasse ?
#!/usr/bin/env python import re zeile = "Messpunkt1 1 2 3 4 5 6" werte = re.split(r"\s+", zeile) print(werte)
Hab das Ganze mit eine if Abfrage versucht leider scheine ich noch einen logischen Fehler zu haben file = open("C:\ Messwerte_sum.txt","r") for line in file: print(line) liste = line.split(' ') Auswertung = [] for i in liste: if ' ' not in i: Auswertung.append(i)
Die Werte in deiner Liste sind Strings mit Leerzeichen. Deshalb wird nichts angehängt. Wenn du es mit Split machen willst dann kannst du auch einfach vorher die unnötigen Leerzeichen entfernen. for i in range(max_Anz_Leerzeichen): zeile.replace(' ',' ') #ersetzt 2 Leerzeichen durch ein Leerzeichen werte = zeile.split Andere Möglichkeiten wurden oben schon geschrieben.
Python_Newbie schrieb: > Hab das Ganze mit eine if Abfrage versucht leider scheine ich noch einen > logischen Fehler zu haben Keinen logischen Fehler, sondern einen 'ignoring the manual' Fehler. str.split([sep[, maxsplit]]) Return a list of the words in the string, using sep as the delimiter string. If maxsplit is given, at most maxsplit splits are done (thus, the list will have at most maxsplit+1 elements). If maxsplit is not specified or -1, then there is no limit on the number of splits (all possible splits are made). If sep is given, consecutive delimiters are not grouped together and are deemed to delimit empty strings (for example, '1,,2'.split(',') returns ['1', '', '2']). The sep argument may consist of multiple characters (for example, '1<>2<>3'.split('<>') returns ['1', '2', '3']). Splitting an empty string with a specified separator returns ['']. If sep is not specified or is None, a different splitting algorithm is applied: runs of consecutive whitespace are regarded as a single separator, and the result will contain no empty strings at the start or end if the string has leading or trailing whitespace. Consequently, splitting an empty string or a string consisting of just whitespace with a None separator returns []. For example, ' 1 2 3 '.split() returns ['1', '2', '3'], and ' 1 2 3 '.split(None, 1) returns ['1', '2 3 '].
norbert@Entwicklung:~$ python3 Python 3.2.3 (default, Feb 20 2013, 14:44:27) [GCC 4.7.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> s = 'Messpunkt1 1 2 3 4 5 6' >>> print(s.split()) ['Messpunkt1', '1', '2', '3', '4', '5', '6'] >>>
Komisch, warum sehe ich keine Leerzeichen?
1 | >>> " 1 2 3 4 5 6 7 8 ".split() |
2 | ['1', '2', '3', '4', '5', '6', '7', '8'] |
:
Bearbeitet durch User
Bernd K. schrieb: > Komisch, warum sehe ich keine Leerzeichen? > >
1 | >>>> " 1 2 3 4 5 6 7 8 ".split() |
2 | > ['1', '2', '3', '4', '5', '6', '7', '8'] |
3 | > |
9:36 Beitrag "Re: Python Leerzeichen entfernen"
Beitrag #5787344 wurde von einem Moderator gelöscht.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.