Ich habe mehrere Skripte, die einen Verzeichnisnamen als Eingabe nehmen, und mein Programm erstellt Dateien in diesen Verzeichnissen. Manchmal möchte ich den Basisnamen eines dem Programm übergebenen Verzeichnisses nehmen und damit verschiedene Dateien im Verzeichnis erstellen. Zum BeispielElegante Möglichkeit, Basisname des Verzeichnisses in Python zu nehmen?
# directory name given by user via command-line
output_dir = "..." # obtained by OptParser, for example
my_filename = output_dir + '/' + os.path.basename(output_dir) + '.my_program_output'
# write stuff to my_filename
Das Problem ist, dass, wenn der Benutzer einen Verzeichnisnamen mit einem Schrägstrich gibt, dann wird os.path.basename die leere Zeichenfolge zurück, die nicht das, was ich will. Was ist der eleganteste Weg, um mit diesen Schrägstrich-/Schrägstrich-Problemen in Python umzugehen? Ich weiß, dass ich am Ende von output_dir manuell nach dem Schrägstrich suchen und es entfernen kann, wenn es da ist, aber es scheint, dass es einen besseren Weg geben sollte. Ist da?
Ist es auch möglich, Zeichen '/' manuell hinzuzufügen? Z.B. output_dir + '/' os.path.basename() oder gibt es eine allgemeinere Möglichkeit, Pfade aufzubauen?
Danke.
„“ „es wird auf Windows brechen“ „“: Einschließlich Schrägstriche brechen wird nur, wenn Sie es als Teil eines Befehls zum Beispiel ernähren 'os.system()'; Der DOS-Befehlsparser versteht nur umgekehrte Schrägstriche. Füttern es z. open() ist ganz OK. Wenn der erstellte Pfad jedoch jemals einem Windows-Benutzer oder Administrator angezeigt werden soll, sollten Sie sich auf eine Menge Flak gefasst machen :-) –