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