Python Преобразует обратные косые черты к косым чертам

Я работаю на python, и мне нужно преобразовать это:

C:\folderA\folderB to C:/folderA/folderB

У меня есть три подхода:

dir = s.replace('\\','/')

dir = os.path.normpath(s) 

dir = os.path.normcase(s)

В каждом сценарии выход был

С: folderAfolderB

Я не уверен, что я делаю неправильно, любые предложения?

Ответ 1

Ваша конкретная проблема - это порядок и ускорение ваших аргументов replace, должно быть

s.replace('\\', '/')

Тогда есть:

posixpath.join(*s.split('\\'))

Что на платформе * nix эквивалентно:

os.path.join(*s.split('\\'))

Но не полагайтесь на это на Windows, потому что он предпочтет разделитель для конкретной платформы. Также:

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

Ответ 2

Try

path = '/'.join(path.split('\\'))

Ответ 3

Как насчет:

import ntpath
import posixpath
.
.
.
dir = posixpath.join(*ntpath.split(s))
.
.