Lie wrote:
In most GUI toolkits (including Tkinter) and raw_input() function,
when you input a string (using the textbox, a.k.a Entry widget) it
would automatically be escaped for you, so when you input 'path\path
\file.txt', the GUI toolkit would convert it into 'path\\path\
\file.txt'.
That's incorrect. If you enter text into a text box or in raw_input(),
*no* conversion of backslashes is happening. A backslash entered in
raw_input is just a backslash. A backslash entered in a textbox is just
a backslash. A backslash read from a file is just a backslash.
A "conversion" happens when you print the repr() of a string that was
obtained from raw_input or from a text box, because repr() tries to show
the string literal that would result in the contents, and in a string
literal, a backslash is not (always) a backslash, so repr() escapes the
backslashes:
py> text = raw_input("Enter some text: ")
Enter some text: This is a backslash: \
py> print text
This is a backslash: \
py> print repr(text)
'This is a backslash: \\'
As you can see, I entered a single backslash, and the string ends up
containing a single backslash. Only when I ask Python for the repr() of
the string does the backslash get doubled up.
--
Carsten Haese
http://informixdb.sourceforge.net
--
http://mail.python.org/mailman/listinfo/python-list