Making a string raw

Gary Herron res0ne7x at verizon.net
Tue Dec 4 14:05:39 EST 2001


There is no such thing as a raw string!  A string is a string is a
string (except for unicode strings) and it might, or might not,
contain back-slashes or non-ascii characters.

The 'raw' part has to do with string literals, which is how create
strings in a python program.  Other ways of creating strings, such as
a Tkinter textbox, may or may not have an easy way to create string
values with various special characters.  (If memory serves, a '\n' in
a tkinter textbox produces a two character string -- backslash
followed by "n".)

Example:
  spam = r'hello'
  eggs = 'hello'
produce exactly the same string value.  Neither is raw or un-raw, and
both are Python strings with five characters.

The same hold true for the following two  ways of creating strings:
  spam = r'C:\abc'
  eggs = 'C:\\abc'
Again the two strings have the same value, neither is raw or not raw,
and both have a backslash

If what you want is to take a string which has various backslash
sequences such as "\n" and convert such sequences into newlines, then
try:
  str.replace("\\n", "\n")
or
  str.replace(r"\n", "\n")
both of which specify replacing the two character string backslash-"n" 
with a one character newline.

Hope that's all clear,
Gary Herron


On Tuesday 04 December 2001 10:14 am, Rune Nesheim wrote:
> Could any of you lot tell me how to convert a string stored in
> avariable to a raw string?
>
> I know I create a raw string this way:
>
> spam = R'hello'
>
> But if I don't know what the string is going to contain, for example
> if I fetch from a Tkinter text-box to the variable 'eggs' and want to
> convert 'eggs' into a raw string.




More information about the Python-list mailing list