Mam kilka skryptów, które pobierają nazwę katalogu, a mój program tworzy pliki w tych katalogach. Czasem chcę pobrać baseame z katalogu podanego do programu i użyć go do tworzenia różnych plików w katalogu. Na przykład,Elegancki sposób na pobranie nazwy katalogu w Pythonie?
# 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
Problemem jest to, że jeśli użytkownik podaje nazwę katalogu z ukośnika, wtedy os.path.basename zwróci pusty ciąg znaków, który jest nie to, co chcę. Jaki jest najbardziej elegancki sposób radzenia sobie z tymi slash/końcowymi problemami slasha w pythonie? Wiem, że mogę ręcznie sprawdzić ukośnik na końcu output_dir i usunąć go, jeśli tam jest, ale wydaje się, że powinien istnieć lepszy sposób. Jest tu?
Czy można również ręcznie dodawać znaki "/"? Na przykład. output_dir + '/' os.path.basename() lub czy istnieje bardziej ogólny sposób budowania ścieżek?
Dzięki.
„” „będzie przerwa na Windows” „”: m.in. ukośniki złamie tylko jeśli karmisz go jako części polecenia na przykład 'os.system()'; parser poleceń DOS rozumie tylko ukośniki odwrotne. Karmienie go np. open() jest całkiem w porządku. Jeśli jednak skonstruowana ścieżka zostanie kiedykolwiek wyświetlona użytkownikowi systemu Windows lub administratorowi, przygotuj się na wiele błędów :-) –