2010-07-23 15 views
27

Mam ścieżkę:Usuń ostatnią drogę komponent w łańcuchu

myPath = "C:\Users\myFile.txt" 

Chciałbym usunąć ścieżkę końcową tak, że ciąg zawiera tylko:

"C:\Users" 

tej pory używam rozłam , ale po prostu daje mi listę i utknąłem w tym punkcie.

myPath = myPath.split(os.sep) 
+0

które powinny być 'myPath', nie' fPath' – ghostdog74

Odpowiedz

48

Nie należy bezpośrednio manipulować ścieżkami, ponieważ jest do tego moduł os.path.

>>> import os.path 
>>> print os.path.dirname("C:\Users\myFile.txt") 
C:\Users 
>>> print os.path.dirname(os.path.dirname("C:\Users\myFile.txt")) 
C:\ 

Podoba mi się to.

+2

Ale to działa tylko wtedy, gdy droga nie kończy się z „/” – Awsed

8

Można również użyć os.path.split, jak to

>>> import os 
>>> os.path.split('product/bin/client') 
('product/bin', 'client') 

Dzieli ścieżkę na dwie części i zwraca je w krotce. Można przypisać wartości w zmiennych, a następnie wykorzystać je, jak to

>>> head, tail = os.path.split('product/bin/client') 
>>> head 
'product/bin' 
>>> tail 
'client'