python – Print raw string from variable? (not getting the answers)
python – 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 directory print(repr(test))
This makes it platform independent and it now works with
.encode
. If this is an option for you, its 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 cant 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, theres no difference between a raw string and a regular one. If you have a string that contains a newline, for instance, theres 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.
python – Print raw string from variable? (not getting the answers)
In general, to make a raw string out of a string variable, I use this:
string = C:\WindowsUsersalexb
raw_string = r{}.format(string)
output:
C:\\Windows\Users\alexb