Hallo Forum,
ich weis ehrlich gesagt nicht mehr weiter.
Ich möchte folgendes tun (in der python Shell klappt das wunderbar)
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:>>> 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
searchMass:Code:command = str(raw_input(": ")) if "search" in command: fc.searchMass(command)
search: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
Wenn ich nun an searchMass(self, "search a") übergebe, dann wird es folgedermaßen aufgesplittet: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
: 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".
Geändert von keks (03.05.2011 um 14:46 Uhr)
by timos
“Aber natuerlich sollte man das nicht so pauschal sehen,
es gibt Aufgaben, fuer die ist eine Maus sehr gut geeignet, zB um Medikamente zu testen.”
"O Genie, der Herr ehre Dein Ego"
|
Das Linux-Firewalls Standardwerk jetzt 71% billiger – Nur solange Vorrat reicht DAS Firewall-Buch jetzt günstiger! Security-Fachmann Ralf Spenneberg führt mit diesem Buch
|
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?
Lesezeichen