2012-06-15 25 views
5

我试图从C:Y: 我试图改变当前目录:如何使用python os更改驱动器?

import os 
os.chdir('Y:') 

,但我不断收到一个错误,指出它无法找到该驱动器。 基本上我寻找的

cd /d 

命令在cmd中的等价物。

+3

您意识到“将当前目录从C更改为Y:”实际上并不代表Windows中的任何内容?有一个当前的默认驱动器,并为每个驱动器单独的当前目录。因此,您可以将当前驱动器更改为Y :,或者可以将当前驱动器更改为Y:并将目录更改为\,但这些操作是不同的。 (在C API级别,它是_chdrive(25)与_chdir(“Y:\\”),它可能类似于Python,除了chdrive可能不存在于os中,你必须去msvcrt,或者甚至ctypes实际的MSVCRT DLL。) – abarnert

+0

我意识到我与Y的连接:已经被破坏了,但是一旦我将它排序出来,chdir('Y:')就可以正常工作。 感谢您的帮助。 – aensm

回答

7

您确定Y:确实是一个有效的驱动器号?

尝试os.chdir('C:')并确保有效。 (它适用于我。)

+1

对我也适用,并不在乎“case” – jdi

+0

我有一个Y:驱动器,我可以使用“cd/d Y:” – aensm

+1

@aensm访问它:即使'os.chdir(' Y:')'工作,它不会像“cd/d Y:”那样做。请参阅@ abarnert的评论。 – martineau

1

如果这是映射网络驱动器,最好的办法是使用UNC路径而不是映射路径。另外,如果您不使用os.path.join,则在窗口下使用路径时,请尝试使用原始r字符串修饰符。

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

您的解决方案正常工作。如果有人想直接使用UNC路径打开,读取,写入。就像这里显示的那样生成字符串。它的作用像一个魅力。谢谢 – bicepjai