On Wed, 15 Sep 2010 07:20:33 am Walter Prins wrote: > Correction on my last paragraph on my last mail: > "See also when Python is asked to "print" the string, you can see the > escape characters really there." -> "See also when Python is asked to > "print" the string, you can see the escape characters aren't part of > the actual contents of the string."
I think that half of the confusion here is that people are confused about what escape characters are. When you read text from a file, and Python sees a backslash, it DOESN'T add a second backslash to escape it. Nor does it add quotation marks at the start or end. Text is text. The characters you read from a text file -- or the bytes you read from any file -- remain untouched, exactly as they existed in the file. But what changes is the DISPLAY of the text. When you have the four characters abcd (with no quotation marks) and you ask Python to display it on the command line, the display includes punctuation, in this case quotation marks, just like a list includes punctuation [,] and a dict {:,}. If the string includes certain special characters like newlines, tabs, backslashes and quotation marks, the display uses escape codes \n \t \\ \' or \" as punctuation to the display only. But the extra backslashes don't exist in the string, any more than lists include items [ and ]. When you enter string literals, the way to enter them is by typing the display form. The display form includes matching quotation marks at the beginning and end, and escaping special characters. But that punctuation isn't part of the string. -- Steven D'Aprano _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor