Python Convert Back Slashes to forward slashes

PythonReplace

Python Problem Overview


I am working in python and I need to convert this:

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

I have three approaches:

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

dir = os.path.normpath(s) 

dir = os.path.normcase(s)

In each scenario the output has been

C:folderAfolderB

I'm not sure what I am doing wrong, any suggestions?

Python Solutions


Solution 1 - Python

I recently found this and thought worth sharing:

import os

path = "C:\\temp\myFolder\example\\"

newPath = path.replace(os.sep, '/')

print newPath


Output:<< C:/temp/myFolder/example/  >>

Solution 2 - Python

Your specific problem is the order and escaping of your replace arguments, should be

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

Then there's:

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

Which on a *nix platform is equivalent to:

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

But don't rely on that on Windows because it will prefer the platform-specific separator. Also: > Note that on Windows, since there is a current directory for each > drive, os.path.join("c:", "foo") represents a path relative to the > current directory on drive C: (c:foo), not c:\foo.

Solution 3 - Python

Try

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

Solution 4 - Python

Path names are formatted differently in Windows. the solution is simple, suppose you have a path string like this:

data_file = "/Users/username/Downloads/PMLSdata/series.csv"

simply you have to change it to this: (adding r front of the path)

data_file = r"/Users/username/Downloads/PMLSdata/series.csv"

The modifier r before the string tells Python that this is a raw string. In raw strings, the backslash is interpreted literally, not as an escape character.

Solution 5 - Python

To define the path's variable you have to add r initially, then add the replace statement .replace('\\', '/') at the end.

for example:

In>>  path2 = r'C:\Users\User\Documents\Project\Em2Lph\'.replace('\\', '/')
In>>  path2 
Out>> 'C:/Users/User/Documents/Project/Em2Lph/'

This solution requires no additional libraries

Solution 6 - Python

Sorry for being late to the party, but I wonder no one has suggested the pathlib-library.

pathlib is a module for "Object-oriented filesystem paths"

To convert from windows-style (backslash)-paths to forward-slashes (as typically for Posix-Paths) you can do so in a very verbose (AND platform-independant) fashion with pathlib:

import pathlib

pathlib.PureWindowsPath(r"C:\folderA\folderB").as_posix()
>>> 'C:/folderA/folderB'

Be aware that the example uses the string-literal "r" (to avoid having "\" as escape-char) In other cases the path should be quoted properly (with double backslashes) "C:\\folderA\\folderB"

Solution 7 - Python

How about :

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

Solution 8 - Python

This can work also:

def slash_changer(directory):

if "\\" in directory:
    return directory.replace(os.sep, '/')
else:
    return directory

print(slash_changer(os.getcwd()))

Solution 9 - Python

this is the perfect solution put the letter 'r' before the string that you want to convert to avoid all special characters likes '\t' and '\f'... like the example below:

str= r"\test\hhd"

print("linux path:",str.replace("\\","\\\\"))
print("windows path:",str.replace("\\","/"))

result:

linux path: \\test\\hhd
windows path: /test/hhd

enter image description here

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionJohn87View Question on Stackoverflow
Solution 1 - PythonNumabyteView Answer on Stackoverflow
Solution 2 - PythonJason SView Answer on Stackoverflow
Solution 3 - PythonTheoretiCALView Answer on Stackoverflow
Solution 4 - PythonscapaView Answer on Stackoverflow
Solution 5 - PythonMohammad ElNesrView Answer on Stackoverflow
Solution 6 - PythonStefanView Answer on Stackoverflow
Solution 7 - PythonT P SaravananView Answer on Stackoverflow
Solution 8 - PythonMiroslav KopeckýView Answer on Stackoverflow
Solution 9 - PythonChafik BoulealamView Answer on Stackoverflow