ruta - python directorio actual
Python-Extrae la ruta de la carpeta desde la ruta del archivo (4)
Aquí está el código:
import os
existGDBPath = r''T:/Data/DBDesign/DBDesign_93_v141b.mdb''
wkspFldr = os.path.dirname(existGDBPath)
print wkspFldr # T:/Data/DBDesign
He visto esta solución, pero no específicamente para Python.
Me gustaría obtener solo la ruta de la carpeta desde la ruta completa a un archivo.
Por ejemplo T:/Data/DBDesign/DBDesign_93_v141b.mdb
y me gustaría obtener solo T:/Data/DBDesign
(excluyendo el /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 (siendo T:/Data/DBDesign
).
¿Alguna idea sobre cómo puedo obtener el camino a mi archivo?
Gracias.
El submódulo incorporado os.path tiene una función para esa misma tarea.
import os
os.path.dirname(''T:/Data/DBDesign/DBDesign_93_v141b.mdb'')
Estabas casi allí con tu uso de la función de split
. Solo necesitabas unirte a las cuerdas, como sigue.
>>> ''//'.join(existGDBPath.split(''//')[0:-1])
''T://Data//DBDesign''
Aunque, recomendaría usar la función os.path.dirname
para hacer esto, solo necesita pasar la cadena, y hará el trabajo por usted. Como pareces estar en Windows, considera usar la función abspath
también. Un ejemplo -
>>> os.path.dirname(os.path.abspath(existGDBPath))
''T://Data//DBDesign''
Si desea el nombre del archivo y la ruta del directorio después de dividirlo, puede usar la función os.path.split
que devuelve una tupla, de la siguiente manera.
>>> os.path.split(os.path.abspath(existGDBPath))
(''T://Data//DBDesign'', ''DBDesign_93_v141b.mdb'')
Use el módulo os.path :
>>> import os
>>> existGDBPath = r''T:/Data/DBDesign/DBDesign_93_v141b.mdb''
>>> wkspFldr = os.path.dirname(existGDBPath)
>>> print wkspFldr
''T:/Data/DBDesign''
Puede seguir adelante y asumir que si necesita hacer algún tipo de manipulación de nombre de archivo ya se ha implementado en os.path
. De lo contrario, probablemente aún necesite usar este módulo como componente esencial.
ACTUALIZAR
Uno debería considerar usar pathlib para un nuevo desarrollo. Está en stdlib para Python3.4, pero está disponible en PyPI para versiones anteriores. Esta biblioteca proporciona un método más orientado a objetos para manipular rutas <opinion>
y es mucho más fácil de leer y programar con </opinion>
.
>>> import pathlib
>>> existGDBPath = pathlib.Path(r''T:/Data/DBDesign/DBDesign_93_v141b.mdb'')
>>> wkspFldr = existGDBPath.parent
>>> print wkspFldr
Path(''T:/Data/DBDesign'')