una ruta recorrer nombre manejo leer gestion escribir directorio carpetas carpeta archivos archivo actual python file path folder extract

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'')