2012-06-15 8 views
5

sto cercando di cambiare la directory corrente C:-Y: ho provato:Come posso cambiare le unità usando python os?

import os 
os.chdir('Y:') 

ma io continuo a ricevere un errore che dice che non è possibile individuare l'unità. In sostanza sto cercando l'equivalente del comando

cd /d 

cmd.

+3

Ti rendi conto che "cambia la directory corrente da C: a Y:" in realtà non significa nulla in Windows? C'è una unità predefinita corrente e una directory corrente separata per ogni unità. Quindi, puoi cambiare l'unità corrente in Y :, oppure puoi cambiare l'unità corrente in Y: e cambiare la directory su quella in \, ma si tratta di operazioni diverse. (A livello API C è _chdrive (25) vs _chdir ("Y: \\"), ed è probabilmente simile in Python, tranne che chdrive probabilmente non esiste in os e devi andare a msvcrt, o anche ctypes la DLL MSVCRT effettiva.) – abarnert

+0

Ho realizzato la mia connessione a Y: era stata interrotta in qualche modo, ma una volta che l'ho risolta, chdir ('Y:') funzionava bene. Grazie per l'aiuto in ogni caso. – aensm

risposta

7

Sei sicuro che Y: è davvero una lettera di unità valida?

Prova os.chdir('C:') e assicurati che funzioni. (Funziona per me.)

+1

Funziona bene anche per me e non mi interessa "case" – jdi

+0

Ho un disco Y: e sono stato in grado di accedervi usando "cd/d Y:" – aensm

+1

@aensm: anche se 'os.chdir (' Y: ') 'ha funzionato, non fa la stessa cosa di un" cd/d Y: ". Vedi il commento di @ abarnert. – martineau

1

Se si tratta di un'unità di rete mappata, la soluzione migliore è utilizzare il percorso UNC anziché il percorso mappato. Inoltre, prova a utilizzare un modificatore di stringa r non elaborato quando utilizzi i percorsi in Windows, se non stai utilizzando os.path.join.

import os 
print os.getcwd() 
os.chdir(r'\\server\path') 
print os.getcwd() 
+1

la tua soluzione funziona bene. Se qualcuno vuole usare il percorso UNC direttamente in aperto, leggi, scrivi. basta rendere la stringa grezza come mostrato qui. Funziona come un incantesimo. Grazie – bicepjai

Problemi correlati