>>> import os
>>> os.chdir('c:/python27')
>>> os.listdir('c:')
['Tools', 'include', 'python.exe', 'libs', 'DLLs', 'Lib', 'NEWS.txt',
'w9xpopen.exe', 'Doc', 'pythonw.exe', 'LICENSE.txt', 'README.txt', 'tcl']
>>> os.listdir('c:/')
['users', 'Program Files', 'Python27', 'windows']
为什么“c:”之后的“/”会影响结果?有没有办法让os.listdir('c:')
返回“c:/”的内容?
答案 0 :(得分:22)
我认为这不是Python特有的,它是一个Windows问题。
在Windows中C:
和C:\
(或者C:/
)具有完全不同的含义:
C:
指的是驱动器C:
C:\
(和C:/
)指的是驱动器C:
虽然类UNIX操作系统只有一个“当前目录”,但Windows有两个不同的概念:
因此当前驱动器可以是D:
,C:
上的当前目录可以是\Windows
(有效C:\Windows
),D:
上的当前目录可以是\Data
(有效D:\Data
)。在这种情况下,解决方案可以这样工作:
.
会引用D:\Data
\
会引用D:\
C:
会引用C:\Windows
C:\Foo
会引用C:\Foo
因此,如果您想获得有关特定目录的信息,则应始终使用完整路径,包括驱动器和目录,例如C:\
。
答案 1 :(得分:4)
C:使用C:驱动器上的当前工作目录。
C:/被转换为C:\并使用C:驱动器上的根目录。
有没有办法让os.listdir('c:')返回“c:/”的内容?
没有
但是,您可以更改目录。但这可能会让用户感到困惑。