Как я могу изменить диски с помощью python os?

Я пытаюсь изменить текущий каталог с C: на Y:. Я пробовал:

import os
os.chdir('Y:')

но я продолжаю получать сообщение об ошибке, говорящее, что он не может найти диск. По сути, я ищу эквивалент

cd /d

команда в cmd.


person aensm    schedule 15.06.2012    source источник
comment
Вы понимаете, что изменение текущего каталога с C: на Y: на самом деле ничего не значит в Windows? Есть текущий диск по умолчанию и отдельный текущий каталог для каждого диска. Таким образом, вы можете изменить текущий диск на Y: или вы можете изменить текущий диск на Y: и изменить каталог на нем на \, но это разные операции. (На уровне C API это _chdrive(25) против _chdir(Y:\\), и, вероятно, это похоже на Python, за исключением того, что chdrive, вероятно, не существует в os, и вам нужно перейти к msvcrt или даже ctypes. фактическая DLL MSVCRT.)   -  person abarnert    schedule 16.06.2012
comment
Я понял, что мое соединение с Y: каким-то образом было прервано, но как только я разобрался с этим, chdir('Y:') заработал нормально. Спасибо за помощь в любом случае.   -  person aensm    schedule 18.06.2012


Ответы (3)


Вы уверены, что Y: действительно является допустимой буквой диска?

Попробуйте os.chdir('C:') и убедитесь, что это работает. (Меня устраивает.)

person Jon-Eric    schedule 15.06.2012
comment
У меня есть диск Y:, и я смог получить к нему доступ, используя cd /d Y: - person aensm; 15.06.2012
comment
@aensm: Даже если os.chdir('Y:') сработает, это не то же самое, что cd / d Y:. См. комментарий @abarnert. - person martineau; 16.06.2012
comment
я предполагаю, что Y: не диск, а Y:\ есть. - person ModdyFire; 20.02.2013

Если это подключенный сетевой диск, лучше всего использовать путь UNC вместо сопоставленного пути. Кроме того, попробуйте использовать необработанный модификатор строки r при использовании путей под окнами, если вы не используете os.path.join.

import os
print os.getcwd()
os.chdir(r'\\server\path') 
print os.getcwd()
person PenguinCoder    schedule 15.06.2012

Если вы делаете (Диск:путь\к\папке), попробуйте переключить косую черту на (Диск:путь/к/папке)

person JawsChamp    schedule 19.11.2020
comment
Это не отвечает на вопрос. ОП просит сменить диски, а не папки. - person funie200; 19.11.2020