os.system -> Leerzeichen im Dateinamen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
pr0stAta
User
Beiträge: 271
Registriert: Freitag 17. September 2004, 11:49
Wohnort: Bremen

Halli Hallo, ich kann mir kaum vorstellen, das noch keiner
dieses Problem hatte, dennoch fand ich per Suche nichts
brauchbares.
Hat meine Datei ein Leerzeichen im Namen, so schneidet os.system
den String dort einfach ab:

Code: Alles auswählen

>>> pfad = "c:/test/02-AudioTrack 02.mp3"
>>> os.system(pfad)
Der Befehl "c:/test/02-AudioTrack" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.
1
os.system("%s") %(bla) funktionierte auch nicht
Gibt es dafür eine Lösung?
Gruss prosta
henning
User
Beiträge: 274
Registriert: Dienstag 26. Juli 2005, 18:37

os.system() macht zunächst erstmal gar nichts mit deinen Dateinamen, es nimmt nur einen String entgegen und gibt diesen so wie er ist, an deine shell weiter (in deinem Fall wird das wahrscheinlich die cmd.exe oder command.com sein).

Das heißt, du musst Dateinamen etc... so angeben, wie dus in dieser Shell auch machen würdest.
Ich gehe aufgrund des langen Dateinamens mal von der cmd.exe aus, dann müsste das hier funktionieren (ungetestet):

Code: Alles auswählen

os.system('"c:/test/02-AudoiTrack 02.mp3"')
Zu beachten hierbei sind die einfachen Anführungszeichen aussen bei dem String. So hat der String, der übergeben wird noch die "normalen" Anführungszeichen, die der cmd.exe erzählen sollten, dass es sich um einen Dateinamen und nicht um 2 handelt.
pr0stAta
User
Beiträge: 271
Registriert: Freitag 17. September 2004, 11:49
Wohnort: Bremen

Manchmal ist die Lösung so nah und doch so fern ^^
Ich danke dir, damit hats geklappt.
Und nebenbei, mir ist schon klar das os.system nichts mit dem String
selber macht, war nur bildlich gesprochen ;)
Antworten