einzelne Elemente einer Liste durchlaufen

15/12/2009 - 14:39 von Markus Feilen | Report spam
Hallo,
ich habe da ein kleines Problem.
self.file = (os.path.split(self.filename) [0],\
os.path.splitext(os.path.basename(self.filename)))
Dabei wird an erste Stelle einfach ein String in das Tupel eingefügt,
doch an zweiter Stelle wird ein weiteres Tupel als Tupelelemnt eingefügt:
('C:/Dokumente und Einstellungen/Markus/Eigene Dateien/python/youtube',\
('NEW_Medal_Of_Honor_Trailer', '.flv'))
DOch würde ich es gerne erreichen, dass der Tupel der 2. Dimension als
Elemente der ersten angehàngt werden:
('C:/Dokumente und Einstellungen/Markus/Eigene Dateien/python/youtube',\
'NEW_Medal_Of_Honor_Trailer', '.flv')
Python stellt ja einiges für die "Onthefly" Tupelmanipulation bereit,
habe auch schon diverses probiert, aber bin nie zum Erfolg gekommen.
Zumindest nur über Umwege.
Gibt es eine Möglichkeit das ganze elegant so hinzubekommen, wie
beschrieben?

lg Deadman44
 

Lesen sie die antworten

#1 Peter Otten
15/12/2009 - 15:06 | Warnen spam
Markus Feilen wrote:

ich habe da ein kleines Problem.
self.file = (os.path.split(self.filename) [0],\
os.path.splitext(os.path.basename(self.filename)))
Dabei wird an erste Stelle einfach ein String in das Tupel eingefügt,
doch an zweiter Stelle wird ein weiteres Tupel als Tupelelemnt eingefügt:
('C:/Dokumente und Einstellungen/Markus/Eigene Dateien/python/youtube',\
('NEW_Medal_Of_Honor_Trailer', '.flv'))
DOch würde ich es gerne erreichen, dass der Tupel der 2. Dimension als
Elemente der ersten angehàngt werden:
('C:/Dokumente und Einstellungen/Markus/Eigene Dateien/python/youtube',\
'NEW_Medal_Of_Honor_Trailer', '.flv')
Python stellt ja einiges für die "Onthefly" Tupelmanipulation bereit,
habe auch schon diverses probiert, aber bin nie zum Erfolg gekommen.
Zumindest nur über Umwege.
Gibt es eine Möglichkeit das ganze elegant so hinzubekommen, wie
beschrieben?

(os.path.dirname(fn),) + os.path.splitext(os.path.basename(fn))






('C:/Dokumente und Einstellungen/Markus/Eigene Dateien/python/youtube',
'NEW_Medal_Of_Honor_Trailer', '.flv')

Meines Erachtens besser, da nur einmal Verzeichnis- und Dateiname getrennt
werden:

def mysplit(fn):






... dir, base = os.path.split(fn)
... return (dir,) + os.path.splitext(base)
...
mysplit(fn)






('C:/Dokumente und Einstellungen/Markus/Eigene Dateien/python/youtube',
'NEW_Medal_Of_Honor_Trailer', '.flv')

Wenn eine benutzerdefinierte Funktion die Möglichkeit bietet, Klimmzüge zu
vermeiden, solltest Du diese Möglichkeit nutzen.

Peter

Ähnliche fragen