Better to use raw strings whenever backslashes are involved.

On 10/29/2022 2:21 PM, Bernard LEDRU wrote:
Hello,

https://docs.python.org/3/library/stdtypes.html#string-methods

str.replace(old, new[, count])ΒΆ
Return a copy of the string with all occurrences of substring old replaced by new. If the optional argument count is given, only the first count occurrences are replaced.

Attention when the string contains the escape character.

Consider :

a="H:\2023"; print(a.replace("\\","/"))
H:3
a="H:\a2023"; print(a.replace("\\","/"))
H:2023

These examples actually produce an "H" with a symbol after it, a different symbol for each. Probably the message posting system can't display it, but I see it in a python terminal session on Windows. So the first a="H:\2023" example produces "Hx", where x is some symbol. Since there is no backslash, no character gets replaced. IOW,

a="H:\2023"; print(a)
and
a="H:\2023"; print(a.replace("\\","/"))
print the same thing.

a="H:\_2023"; print(a.replace("\\","/"))
H:/_2023

What did you expect or want to happen?

--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to