Me gustaría obtener solo la ruta de la carpeta desde la ruta completa hasta un archivo.
Por ejemplo, T:\Data\DBDesign\DBDesign_93_v141b.mdb
y me gustaría obtener solo T:\Data\DBDesign
(excluyendo \DBDesign_93_v141b.mdb
).
He intentado algo como esto:
existGDBPath = r'T:\Data\DBDesign\DBDesign_93_v141b.mdb'
wkspFldr = str(existGDBPath.split('\\')[0:-1])
print wkspFldr
pero me dio un resultado como este:
['T:', 'Data', 'DBDesign']
que no es el resultado que requiero (ser T:\Data\DBDesign
).
¿Alguna idea sobre cómo puedo obtener la ruta a mi archivo?
os.sep.join(existGDBPath.split(os.sep)[:-1]
se ve más bonita.CON MÓDULO PATHLIB (RESPUESTA ACTUALIZADA)
Uno debería considerar el uso de pathlib para nuevos desarrollos. Está en stdlib para Python3.4, pero está disponible en PyPI para versiones anteriores. Esta biblioteca proporciona un método más basado en objetos para manipular rutas
<opinion>
y es mucho más fácil de leer y programar</opinion>
.CON MÓDULO OS
Utilice el módulo os.path :
Puede continuar y asumir que si necesita hacer algún tipo de manipulación del nombre de archivo, ya se ha implementado en
os.path
. De lo contrario, probablemente necesitará utilizar este módulo como componente básico.fuente
Path().parent
lo que estaba buscando!El submódulo integrado os.path tiene una función para esa misma tarea.
fuente
Aquí está el código:
fuente
Aquí está mi pequeño ayudante de utilidad para dividir rutas de archivo int, tokens de ruta:
fuente
Cualquiera que intente hacer esto en la interfaz de la calculadora de campo de la tabla ESRI GIS puede hacerlo con el analizador de Python :
PathToContainingFolder =
así que eso
\ Users \ me \ Desktop \ New folder \ file.txt
se convierte en
\ Users \ me \ Desktop \ Nueva carpeta
fuente