Я хотел бы получить только путь к папке из полного пути к файлу.
Например, T:\Data\DBDesign\DBDesign_93_v141b.mdb
и я хотел бы получить просто T:\Data\DBDesign
(без учета \DBDesign_93_v141b.mdb
).
Я пробовал что-то вроде этого:
existGDBPath = r'T:\Data\DBDesign\DBDesign_93_v141b.mdb'
wkspFldr = str(existGDBPath.split('\\')[0:-1])
print wkspFldr
но это дало мне такой результат:
['T:', 'Data', 'DBDesign']
что не является результатом, который мне нужен (быть T:\Data\DBDesign
).
Есть идеи, как я могу получить путь к моему файлу?
os.sep.join(existGDBPath.split(os.sep)[:-1]
выглядит красивее.С МОДУЛЕМ PATHLIB (ОБНОВЛЕННЫЙ ОТВЕТ)
Следует рассмотреть возможность использования pathlib для новых разработок. Он находится в stdlib для Python3.4, но доступен в PyPI для более ранних версий. Эта библиотека предоставляет более объектно-ориентированный метод управления путями,
<opinion>
ее гораздо легче читать и программировать</opinion>
.С МОДУЛЕМ ОС
Используйте модуль os.path :
Вы можете пойти дальше и предположить, что если вам нужно сделать какие-то манипуляции с именами файлов, они уже реализованы
os.path
. Если нет, вам, вероятно, все равно придется использовать этот модуль в качестве строительного блока.источник
Path().parent
то, что я искал!Встроенный подмодуль os.path имеет функцию именно для этой задачи.
источник
Вот код:
источник
Вот моя маленькая вспомогательная утилита для разделения путей в int файл, токены пути:
источник
Любой, кто пытается сделать это в интерфейсе калькулятора полей таблиц ГИС ESRI, может сделать это с помощью парсера Python :
PathToContainFolder =
так что
\ Users \ me \ Desktop \ Новая папка \ file.txt
становится
\ Users \ me \ Desktop \ Новая папка
источник