Print raw string from variable? (not getting the answers)
I had a similar problem and stumbled upon this question, and know thanks to Nick Olson-Harris' answer that the solution lies with changing the string.
Two ways of solving it:
Get the path you want using native python functions, e.g.:
test = os.getcwd() # In case the path in question is your current directoryprint(repr(test))
This makes it platform independent and it now works with
.encode
. If this is an option for you, it's the more elegant solution.If your string is not a path, define it in a way compatible with python strings, in this case by escaping your backslashes:
test = 'C:\\Windows\\Users\\alexb\\'print(repr(test))
You can't turn an existing string "raw". The r
prefix on literals is understood by the parser; it tells it to ignore escape sequences in the string. However, once a string literal has been parsed, there's no difference between a raw string and a "regular" one. If you have a string that contains a newline, for instance, there's no way to tell at runtime whether that newline came from the escape sequence \n
, from a literal newline in a triple-quoted string (perhaps even a raw one!), from calling chr(10)
, by reading it from a file, or whatever else you might be able to come up with. The actual string object constructed from any of those methods looks the same.