os.path.join не правильно форматирует путь

Я пишу навигатор для командной строки для Windows на Python и немного борюсь с os.path.join. Вот, в сущности, то, что я пытаюсь сделать:

abspath = "C:\Python32\Projects\ls.py" abspath = abspath.split('\\') print(abspath) #this prints ['C:', 'Python32', 'Projects', 'ls.py'] if(options.mFlag): print(os.path.join(*abspath)) #this prints C:Python32\Projects\ls.py m = time.ctime(os.path.getmtime(os.path.join(*abspath))) #this throws an exception 

Проблема в том, что os.path.join не вставляет '/' после 'C:', и я не могу понять, почему. Любая помощь?

Edit: В случае, если кто-то в будущем придет сюда искать решение, я просто добавил os.sep после «C:», а не hardcoding обратную косую черту, и это сработало.

Из документации :

Обратите внимание, что в Windows, поскольку для каждого диска существует текущий каталог, os.path.join("c:", "foo") представляет собой путь относительно текущего каталога на диске C: (c: foo), а не c : \ Foo.

Трудно сказать, чего вы пытаетесь достичь, поскольку весь ваш код, похоже, нацелен на то, чтобы разделить путь, а затем собрать его обратно точно так, как это было, и в этом случае зачем его разделять ? Но может быть, os.path.splitdrive поможет вам? Он разбивает букву диска с пути.

Документы ( http://docs.python.org/2/library/os.path.html ) определяют это поведение:

Обратите внимание, что в Windows, поскольку для каждого диска существует текущий каталог, os.path.join («c:», «foo») представляет собой путь относительно текущего каталога на диске C: (c: foo), а не c : \ Foo.