os.getcwd()用于Windows中的其他驱动器
问题内容:
根据http://docs.python.org/library/os.path.html
“在Windows上,每个驱动器都有一个当前目录”
os.getcwd()
在Windows上使用时,这给我带来了一些麻烦。
我在C驱动器上使用Python 2.7来调用位于共享网络驱动器F:上的脚本。但是,os.getcwd()
从此脚本中返回的是我的C驱动器上的目录。
我可以做些什么来获取F驱动器的工作目录?
问题答案:
实际上,这取决于:
如果直接启动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:\\'
但是,如果从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:\\'
毫无疑问,这是cmd.exe的幕后产物。
不过,要回答您的原始问题-找出驱动器f:上当前目录的唯一方法是
- 1)从cmd.exe启动Python
- 2)os.chdir()为’f:’
- 3)os.getcwd()
- 4)os.chdir()返回(如果需要)