Badr
Badr

Reputation: 15

Can't replace "\" with "/"

I am trying to replace a string here in Python.

This is my Input -

link = (r"C:\dell\Documents\Ms\Realm")

I want my output to be like this:

C:/dell/Documents/Ms/Realm

I tried the replace method it didn't work.

the code tried:

link = (r"C:\dell\Documents\Ms\Realm")
link.replace("\","/")

Upvotes: 0

Views: 340

Answers (2)

svfat
svfat

Reputation: 3363

In Python strings, the backslash "\" is a special character, also called the "escape" character. You need to add second backslash to "escape" it and use in string search.

link.replace("\\", "/")

Upvotes: 2

Panagiotis Kanavos
Panagiotis Kanavos

Reputation: 131324

There's nothing wrong with that Windows path. There's no reason to replace anything. A real improvement would be to use pathlib instead of raw strings:

from pathlib import Path
link = Path(r"C:\dell\Documents\Ms\Realm")

That would allow you to construct paths from parts using, eg joinpath, get the parts of the path with parts, the name with name, directory with parent etc.

var filePath=link.joinpath("some_file.txt")
print(filePath)
-------------------
C:\dell\Documents\Ms\Realm\some_file.txt

and more

>>> print(link.parts)
('C:\\', 'dell', 'Documents', 'Ms', 'Realm')
>>> print(link.parent)
C:\dell\Documents\Ms

Or search for files in a folder recursively:

var files=(for file in link.rglob("*.txt") if file.is_file())

Upvotes: 1

Related Questions