string.split() splittet zu einzelnen Buchstaben anstatt zu Wörtern

keks

keks

nicht 1337 genug
[PYTHON] string.split() splittet zu einzelnen Buchstaben anstatt zu Wörtern

Hallo Forum,

ich weis ehrlich gesagt nicht mehr weiter.
Ich möchte folgendes tun (in der python Shell klappt das wunderbar)

Code:
>>> ext="search foo bar baz" 
>>> ext.split()
['search', 'foo', 'bar', 'baz']
dann alles ab dem ersten element ausgeben (bzw im orginal script funktionen aufrufen) 
>>> for each in ext.split()[1:]:
...     print each
foo
bar
baz
so wie ich es erwarten würde. Wenn ich ext.split() im orginal script aufrufe, dann splittet er Zeichenweise. Hier mal relevante Auszüge aus meinem Orginalscript:

Code:
    command = str(raw_input(": "))
    if "search" in command:
        fc.searchMass(command)

searchMass:
Code:
    def searchMass(self, ext):
        rtn=""
        #print ext
        ext.split(" ")
        #for each in ext:
        #	print each
        if len(ext) > 1:
            for line in ext[1:]: # alles nur nicht das erste element
                rtn+=self.search(line)
        print rtn

search:
Code:
    def search(self,ext):
        if os.name=="posix":
            # Checkt auf locate
            if not os.system("locate") == 32512: # not found 
                dFilelist = os.popen("locate "+ext) # luxurious lets use locate's db
                
            elif not os.system("find -pippikaka") == 256: # wrong option
                # have to search with find
                dFilelist = os.popen('find /tmp -name '+ext+' 2> /dev/null')
        endline=""
        for line in dFilelist:
            endline+=str(line)
        return endline

Wenn ich nun an searchMass(self, "search a") übergebe, dann wird es folgedermaßen aufgesplittet:
: search a
search a
"
s
e
a
r
c
h

a
"
was im wiederspruch zur funktionalität der split funktion in der shell steht?! Hilfe seh ich den Wald vor lauter Bäumen nicht?

Grüße

Keks

PS: es gibt bestimmt schickere Möglichkeiten auf locate zu prüfen (bin für vorschläge offen ;) ). Ich mache etwas ala "rapid prototyping".
 
Zuletzt bearbeitet:
spontan fällt mir auf, dass du split() unterschiedich aufrufst.
wobei split(" ") ja eigentlich nur bei Leerzeichen splitten sollte..


was passiert, wenn du im Skript die Gänsefüßchen rausnimmst?
 

Ähnliche Themen

Zugriff Ubuntu 16.04. auf Freigabe 18.04. LTS nicht möglich

Samba 4 Gast Zugang unter Ubuntu funktioniert nicht

Akonadi startet nicht mehr

dovecot und postfix Konfiguration Problem

Windows clients können nicht mehr auf lange laufendes System zugreifen

Zurück
Oben