2012-06-15 19 views
5

estoy tratando de cambiar el directorio actual desde C: a Y: Traté:¿Cómo puedo cambiar las unidades usando el sistema operativo python?

import os 
os.chdir('Y:') 

pero aparece un error que dice que no puede localizar la unidad. Esencialmente estoy buscando el equivalente del comando

cd /d 

cmd.

+3

Te das cuenta de que "cambiar el directorio actual de C: a Y:" en realidad no significa nada en Windows? Hay una unidad predeterminada actual y un directorio actual diferente para cada unidad. Entonces, puede cambiar la unidad actual a Y :, o puede cambiar la unidad actual a Y: y cambiar el directorio a \, pero esas son operaciones diferentes. (En el nivel API de C es _chdrive (25) vs. _chdir ("Y: \\"), y probablemente sea similar en Python, excepto que chdrive probablemente no exista en el sistema operativo y tengas que ir a msvcrt, o incluso ctypes la DLL de MSVCRT real.) – abarnert

+0

Me di cuenta de que mi conexión con Y: había sido interrumpida de alguna manera, pero una vez que resolví eso, chdir ('Y:') funcionó bien. Gracias por la ayuda en cualquier caso. – aensm

Respuesta

7

¿Estás seguro de que Y: realmente es una letra de unidad válida?

Pruebe os.chdir('C:') y asegúrese de que funciona. (Funciona para mí.)

+1

Funciona bien para mí también y no me importa el "caso" – jdi

+0

Tengo una Y: unidad y he podido acceder a ella usando "cd/d Y:" – aensm

+1

@aensm: Incluso si 'os.chdir (' Y: ') 'funcionó, no hace lo mismo que un" cd/d Y: "lo hace. Ver el comentario de @ abarnert. – martineau

1

Si se trata de una unidad de red mapeada, la mejor opción es utilizar la ruta UNC en lugar de la ruta mapeada. Además, intente utilizar un modificador de cadena sin formato r al usar rutas en Windows, si no está usando os.path.join.

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

su solución funciona bien. Si alguien quiere usar la ruta UNC directamente en abierto, lea, escriba. acaba de hacer la cadena en bruto como se muestra aquí. Funciona como un amuleto. Gracias – bicepjai

Cuestiones relacionadas