os.getcwd()用于Windows中的其他驱动器

css*_*drx 12 python

根据http://docs.python.org/library/os.path.html

"在Windows上,每个驱动器都有一个当前目录"

当我os.getcwd()在Windows上使用时,这给了我一些麻烦.

我在我的C盘上使用Python 2.7来调用位于共享网络驱动器F:上的脚本.然而,os.getcwd()从这个脚本中返回我的C盘上的目录.

有什么办法可以获得我的F盘的工作目录吗?

Eth*_*man 6

实际上,这取决于:

如果直接启动Python(不通过cmd.exe),那么是的,你只有一个当前目录(就像总是指定cd/d ...):

--> import os
--> os.getcwd()
'c:\\source\\dbf-dev'
--> os.chdir('z:')
--> os.getcwd()
'Z:\\'
--> os.chdir('c:')    # assumes root directory
--> os.getcwd()
'C:\\'
Run Code Online (Sandbox Code Playgroud)

但是,如果从cmd.exe启动Python,则可以获得历史视角:

>>> import os
>>> os.getcwd()
'Z:\\perm-c'
>>> os.chdir('c:')    # does not assume root directory
>>> os.getcwd()
'C:\\Source\\Path'
>>> os.chdir('d:')
>>> os.getcwd()
'D:\\'
>>> os.chdir('l:')
>>> os.getcwd()
'L:\\'
>>> os.chdir('l:\\letter')
>>> os.getcwd()
'l:\\letter'
>>> os.chdir('z:')
>>> os.getcwd()
'Z:\\perm-c'
>>> os.chdir('l:\\')
>>> os.getcwd()
'l:\\'
Run Code Online (Sandbox Code Playgroud)

毫无疑问,这是cmd.exe在幕后做事的工件.

但是要回答你原来的问题 - 找出驱动器f:当前目录的唯一方法是

  • 1)从cmd.exe启动Python
  • 2)os.chdir()到'f:'
  • 3)os.getcwd()
  • 4)os.chdir()返回(如果需要)