Python's os.listdir behaviour on Windows
This is not specific to Python, it's a Windows question at heart.
In Windows C:
and C:\
(or, alternatively C:/
) have quite different meanings:
C:
refers to the current directory on the driveC:
C:\
(andC:/
) refers to the root directory of the driveC:
While UNIX-like operating systems simply have a "current directory", Windows has two separate notions:
- the current drive and
- the current directory per drive
So the current drive could be D:
, the current directory on C:
could be \Windows
(effectively C:\Windows
) and the current directory on D:
could be \Data
(effectively D:\Data
). In this scenario resolution would work like this:
.
would refer toD:\Data
\
would refer toD:\
C:
would refer toC:\Windows
C:\Foo
would refer toC:\Foo
So if you want to have information about a specific directory, you should always use a full path including both a drive and a directory, such as C:\
.
C: uses the current working directory on the C: drive.
C:/ is translated to C:\ and uses the root directory on the C: drive.
Is there a way to get os.listdir('c:') to return the contents of "c:/"?
No.
You can, however, change directories. But that may be confusing to users.