os.getcwd() for a different drive in Windows

前端 未结 3 1556
天涯浪人
天涯浪人 2021-01-11 11:50

According to http://docs.python.org/library/os.path.html

\"On Windows, there is a current directory for each drive\"

This is giv

3条回答
  •  终归单人心
    2021-01-11 12:39

    Actually, it depends:

    If Python is started directly (not going through cmd.exe), then yes, you only have the one current directory (it's like always specifying 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:\\'
    

    But, if you start Python from cmd.exe, you get the historical perspective:

    >>> 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:\\'
    

    Undoubtedly this is an artifact of cmd.exe doing its thing behind the scenes.

    To answer your original question, though -- the only way to find out the current directory on drive f: is

    • 1) to have started Python from cmd.exe
    • 2) os.chdir() to 'f:'
    • 3) os.getcwd()
    • 4) os.chdir() back (if desired)

提交回复
热议问题