Forum: PC-Programmierung Python Leerzeichen entfernen


von Python_Newbie (Gast)


Lesenswert?

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 ?

von Hans (Gast)


Lesenswert?

Mit einer if Abfrage.

MfG

von Christian (Gast)


Lesenswert?

schau mal nach strip()

MFG Christian

von Christoph H. (Gast)


Lesenswert?

#!/usr/bin/env python

import re

zeile = "Messpunkt1   1     2    3    4     5   6"

werte = re.split(r"\s+", zeile)
print(werte)

von Python_Newbie (Gast)


Lesenswert?

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)

von Karl (Gast)


Lesenswert?

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.

von Norbert (Gast)


Lesenswert?

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  '].

von Norbert (Gast)


Lesenswert?

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']
>>>

von Python_Newbie (Gast)


Lesenswert?

Super Danke an alle hab es hin bekommen.

von Bernd K. (prof7bit)


Lesenswert?

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
von Norbert (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.