Ich habe zur Zeit Python 2.2.2 auf dem System und entgegen einiger Bücher und Meldungen aus diversen Foren funktioniert bei mir die Funktion strip() nicht. Klar ich hab an den import der Klasse String usw. gedacht.
Ich hab das Problem auf eine sehr unschöne Art und WEise gelöst. Aber mich wurmt es halt immer noch, warum strip() nicht funktioniert.
Danke schon mal für die aufklärenden Antworten von euch.
2bock
Warum funktioniert die Funktion strip() unter Python 2.2 nic
gib mal bitte Codebeispiele und deren Ausgabe an, damit man sich das mal näher anschauen kann... Aus dem Hilfetext geht ja hervor, dass das 2. Argument erst später dazukam, aber ich (wir) wissen ja nicht wie du strip benutzen willst.
python.org Documentation hat geschrieben: strip(s, [chars])
Return a copy of the string with leading and trailing characters removed. If chars is omitted or None, whitespace characters are removed. If given and not None, chars must be a string; the characters in the string will be stripped from the both ends of the string this method is called on. Changed in version 2.2.3: The chars parameter was added. The chars parameter cannot be passed in earlier 2.2 versions.
>>> import string
>>> test = 'bla bla bla bla bla bla bla'
>>> test.strip(test,' ')
Traceback (most recent call last):
File "<pyshell#2>", line 1, in ?
test.strip(test,' ')
TypeError: strip() takes at most 1 argument (2 given)
>>>
Hier ein kleines Codebeispiel.
>>> test = 'bla bla bla bla bla bla bla'
>>> test.strip(test,' ')
Traceback (most recent call last):
File "<pyshell#2>", line 1, in ?
test.strip(test,' ')
TypeError: strip() takes at most 1 argument (2 given)
>>>
Hier ein kleines Codebeispiel.
Hallo!
Es geht entweder so (alter Stil):
import string
test = string.strip(test,' ')
oder so (neuer Stil):
test = test.strip(' ')
Jan
Das kannst Du aber so nirgends gelesen haben.2bock_ hat geschrieben:>>> test.strip(test,' ')
Es geht entweder so (alter Stil):
import string
test = string.strip(test,' ')
oder so (neuer Stil):
test = test.strip(' ')
Jan
>>> import string
>>> test = 'la la la la la la la la'
>>> test=test.strip(' ')
>>> print test
la la la la la la la la
>>>
>>> test = string.strip(test,' ')
>>> print test
la la la la la la la la
>>>
ich habe es nocheinmal ausprobiert ganz nach Deinen Anregungen Jan.
Ich habe beide Versionen ausprobiert und das sind die Resultate. Bitte sag mir das ich nen Flüchtigkeitsfehler habe. Ich verstehe nämlich mittlerweile nicht mehr Warum das anscheinend nur bei mir ncith funktioniert.
Trotzdem Danke für die bisherigen Hilfen.
2bock
>>> test = 'la la la la la la la la'
>>> test=test.strip(' ')
>>> print test
la la la la la la la la
>>>
>>> test = string.strip(test,' ')
>>> print test
la la la la la la la la
>>>
ich habe es nocheinmal ausprobiert ganz nach Deinen Anregungen Jan.
Ich habe beide Versionen ausprobiert und das sind die Resultate. Bitte sag mir das ich nen Flüchtigkeitsfehler habe. Ich verstehe nämlich mittlerweile nicht mehr Warum das anscheinend nur bei mir ncith funktioniert.
Trotzdem Danke für die bisherigen Hilfen.
2bock
Hallo!
Anscheinend willst Du die Leerzeichen inmitten des Strings löschen. strip() löscht aber nur "leading and trailing" Zeichen. Entweder Du nimmst string.replace() oder, falls Du eine Zeichenmenge hast, string.translate(). Ein Beispiel für Letzteres, da das Wie vielleicht nicht so offensichtlich ist:
>>> test = "ABCD"
>>> print test.translate(string.maketrans("",""),"AC")
BD
>>>
Ein regulärer Ausdruck ginge auch, wäre aber hier "überqualifiziert".
Jan
Wie war der Spruch? Der Computer macht nicht das, was man will, sondern das was man ihm sagt.2bock_ hat geschrieben: Ich habe beide Versionen ausprobiert und das sind die Resultate. Bitte sag mir das ich nen Flüchtigkeitsfehler habe.
Anscheinend willst Du die Leerzeichen inmitten des Strings löschen. strip() löscht aber nur "leading and trailing" Zeichen. Entweder Du nimmst string.replace() oder, falls Du eine Zeichenmenge hast, string.translate(). Ein Beispiel für Letzteres, da das Wie vielleicht nicht so offensichtlich ist:
>>> test = "ABCD"
>>> print test.translate(string.maketrans("",""),"AC")
BD
>>>
Ein regulärer Ausdruck ginge auch, wäre aber hier "überqualifiziert".
Jan
Danke Hans. Wie oben zu lesen, bin ich positiv überrascht. Warum steht eigentlich so was gutes nicht in meinen Büchern?
Egal trozdem herzlichen Dank.
2bock
Egal trozdem herzlichen Dank.
2bock
-
- Python-Forum Veteran
- Beiträge: 2010
- Registriert: Freitag 11. Oktober 2002, 18:00
- Wohnort: Salzburg
- Kontaktdaten:
Hallo,
um alle Whitespaces aus einem String zu löschen oder zu ersetzten kann mans auch so machen:
Gruß
Dookie
um alle Whitespaces aus einem String zu löschen oder zu ersetzten kann mans auch so machen:
Code: Alles auswählen
>>> test = "bla bla bla bla"
>>> print "".join(test.split())
blablablabla
>>> test2 = "bla bla\nbla\tbla"
>>> print test2
bla bla
bla bla
>>> print "".join(test2.split())
blablablabla
Dookie