Итак, у меня есть объект FileDialogue в Tkinter, который получает местоположение файла с компьютера пользователя.
Вывод не всегда одинаков, так как каталог может отличаться.
Для Э.Г. = Filename = C:/MusicDirectory/Music.mp3
или что-то еще, например D:/Some/Directory/IDontKnowWhatToTypeAnyMore/Music.mp3
Моя основная цель — удалить «C:/MusicDirectory/
» и нежелательный каталог из строки, но строка не останется прежней. Это может быть и другая папка.
Может ли кто-нибудь помочь мне в этой ситуации?
Да, @Moosefeather, я просто хочу получить имя файла. Например, имя файла something.mp3
, и я просто хочу получить это имя, а не каталог, например C:/
Много хороших обсуждений этой проблемы здесь: stackoverflow.com/questions/8384737/…
Вам нужно os.path.basename:
os.path.basename('C:/MusicDirectory/Music.mp3') # 'Music.mp3'
os.path.basename('D:/Some/Directory/IDontKnowWhatToTypeAnyMore/Music.mp3') # 'Music.mp3'
Спасибо, M8, это было то, что я искал.
@xpDev рад, что смог помочь, вы также можете проверить объект pathlib.PurePath , который может быть удобен, если вы выполняете другие операции на пути. (В этом случае, если бы вы использовали PurePath.name)
Спасибо @MooseFeather за ваши усилия.
Первое использование метода os.path.basename
(рекомендуется):
os.path.basename('C:/MusicDirectory/Music.mp3')
Второй метод:
path = 'C:/MusicDirectory/Music.mp3'
partsOfPath = path.split("/")
nameOfFile = partsOfPath[-1]
Итак, вы хотите просто получить имя файла?