Sto scrivendo un navigatore di directory da riga di comando per Windows in Python e sto faticando un po 'con os.path.join. Ecco, in sostanza, quello che sto cercando di fare:os.path.join non ha correttamente formattato il percorso
abspath = "C:\Python32\Projects\ls.py"
abspath = abspath.split('\\')
print(abspath) #this prints ['C:', 'Python32', 'Projects', 'ls.py']
if(options.mFlag):
print(os.path.join(*abspath)) #this prints C:Python32\Projects\ls.py
m = time.ctime(os.path.getmtime(os.path.join(*abspath))) #this throws an exception
Il problema è che os.path.join non è l'inserimento di un '/' dopo 'C:' e non riesco a capire perché. Qualsiasi aiuto?
Modifica: Nel caso in cui qualcuno in futuro venga qui cercando una soluzione, ho appena aggiunto os.sep dopo "C:" invece di eseguire il backup di una barra rovesciata e ha funzionato.
Il punto di questo blocco è rendere la piattaforma del programma indipendente. Prima di inserire questa funzione, il codice non veniva eseguito correttamente in OSX. Grazie per il suggerimento, proverò splitdrive. – bkaiser
@benjaminhkaiser: Un'altra cosa che puoi fare è usare '/' come separatore di percorso invece di \. Funzionerà ancora su Windows ma funzionerà anche su altre piattaforme. – BrenBarn
Quindi, come facciamo ad aggiungere la barra in modo corretto? 'os.path.join (os.getenv (" SystemDrive "), 'somepath')' == ''C: somepath'' – endolith