2010-07-23 9 views
27

tengo un camino:Retire último componente de ruta de una serie

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

me gustaría eliminar la ruta final para que la cadena sólo contiene:

"C:\Users" 

Hasta el momento estoy usando dividida , pero solo me da una lista, y estoy atascado en este punto.

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

que debe ser 'myPath', no' fPath' – ghostdog74

Respuesta

48

No debe manipular las rutas directamente, hay un módulo os.path para eso.

>>> 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:\ 

Me gusta.

+2

Pero esto sólo funciona si la ruta no termina con un "/" – Awsed

8

También puede utilizar os.path.split, como este

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

Se divide la ruta en dos partes y los devuelve en una tupla. Puede asignar los valores de las variables y luego usarlos, como este

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