leggere - python percorso file



Python-Estrai il percorso della cartella dal percorso del file (3)

Ho visto questa soluzione ma non per Python in particolare.

Mi piacerebbe ottenere solo il percorso della cartella dal percorso completo di un file.

Ad esempio T:\Data\DBDesign\DBDesign_93_v141b.mdb e vorrei ottenere solo T:\Data\DBDesign (escluso \DBDesign_93_v141b.mdb ).

Ho provato qualcosa del genere:

existGDBPath = r'T:\Data\DBDesign\DBDesign_93_v141b.mdb'
wkspFldr = str(existGDBPath.split('\\')[0:-1])
print wkspFldr 

ma mi ha dato un risultato come questo:

['T:', 'Data', 'DBDesign']

che non è il risultato che richiedo (essendo T:\Data\DBDesign ).

Qualche idea su come posso ottenere il percorso del mio file?

Grazie.

https://code.i-harness.com


Ecco il codice:

import os
existGDBPath = r'T:\Data\DBDesign\DBDesign_93_v141b.mdb'
wkspFldr = os.path.dirname(existGDBPath)
print wkspFldr # T:\Data\DBDesign

Eri quasi lì con il tuo uso della funzione split . Hai solo bisogno di unirti alle stringhe, come segue.

>>> '\\'.join(existGDBPath.split('\\')[0:-1])
'T:\\Data\\DBDesign'

Anche se, per fare ciò, raccomando di usare la funzione os.path.dirname , devi solo passare la stringa e farà il lavoro per te. Poiché sembra che tu sia su Windows, considera anche l'uso della funzione abspath . Un esempio -

>>> os.path.dirname(os.path.abspath(existGDBPath))
'T:\\Data\\DBDesign'

Se si desidera sia il nome del file che il percorso della directory dopo essere stati divisi, è possibile utilizzare la funzione os.path.split che restituisce una tupla, come segue.

>>> os.path.split(os.path.abspath(existGDBPath))
('T:\\Data\\DBDesign', 'DBDesign_93_v141b.mdb')

Usa il modulo os.path :

>>> import os
>>> existGDBPath = r'T:\Data\DBDesign\DBDesign_93_v141b.mdb'
>>> wkspFldr = os.path.dirname(existGDBPath)
>>> print wkspFldr 
'T:\Data\DBDesign'

Puoi andare avanti e assumere che se hai bisogno di fare una sorta di manipolazione dei nomi dei file è già stato implementato in os.path . In caso contrario, probabilmente sarà necessario utilizzare questo modulo come elemento di base.

AGGIORNARE

Si dovrebbe considerare l'utilizzo di pathlib per il nuovo sviluppo. Si trova nello stdlib per Python3.4, ma è disponibile su PyPI per le versioni precedenti. Questa libreria fornisce un metodo più orientato agli oggetti per manipolare i percorsi <opinion> ed è molto più facile leggere e programmare con </opinion> .

>>> import pathlib
>>> existGDBPath = pathlib.Path(r'T:\Data\DBDesign\DBDesign_93_v141b.mdb')
>>> wkspFldr = existGDBPath.parent
>>> print wkspFldr
Path('T:\Data\DBDesign')




extract