Chciałbym uzyskać tylko ścieżkę do folderu z pełną ścieżką do pliku.
Na przykład T:\Data\DBDesign\DBDesign_93_v141b.mdb
i chciałbym uzyskać tylko T:\Data\DBDesign
(z wyłączeniem \DBDesign_93_v141b.mdb
).
Próbowałem czegoś takiego:
existGDBPath = r'T:\Data\DBDesign\DBDesign_93_v141b.mdb'
wkspFldr = str(existGDBPath.split('\\')[0:-1])
print wkspFldr
ale dał mi taki wynik:
['T:', 'Data', 'DBDesign']
co nie jest wynikiem, którego wymagam (bycia T:\Data\DBDesign
).
Jakieś pomysły, jak uzyskać ścieżkę do mojego pliku?
os.sep.join(existGDBPath.split(os.sep)[:-1]
wygląda ładniej.Z MODUŁEM PATHLIB (ZAKTUALIZOWANA ODPOWIEDŹ)
Należy rozważyć użycie pathlib do nowego rozwoju. Znajduje się w standardowej bibliotece Python 3.4, ale jest dostępna w PyPI we wcześniejszych wersjach. Ta biblioteka zapewnia bardziej opartą na obiektach metodę manipulowania ścieżkami
<opinion>
i jest znacznie łatwiejsza do czytania i programowania</opinion>
.Z MODUŁEM OS
Użyj modułu os.path :
Możesz iść dalej i założyć, że jeśli musisz wykonać jakąś operację na nazwie pliku, to już została zaimplementowana
os.path
. Jeśli nie, prawdopodobnie nadal będziesz musiał użyć tego modułu jako elementu konstrukcyjnego.źródło
Path().parent
to, czego szukałem!Wbudowany moduł podrzędny os.path ma funkcję do tego właśnie zadania.
źródło
Oto kod:
źródło
Oto mój mały pomocnik narzędzia do dzielenia ścieżek pliku int, tokenów ścieżek:
źródło
Każdy, kto próbuje to zrobić w interfejsie kalkulatora pola tabeli ESRI GIS, może to zrobić za pomocą parsera Pythona :
PathToContainingFolder =
po to aby
\ Users \ me \ Desktop \ New folder \ file.txt
staje się
\ Users \ me \ Desktop \ New folder
źródło