Jim Garrison <jgarri...@troux.com> wrote: > OK, I'm curious as to the reasoning behind saying that > > When an 'r' or 'R' prefix is present, a character following a > backslash is included in the string without change, and all > backslashes are left in the string. > > which sounds reasonable, but then saying in effect "Oh wait, let's > introduce a special case and make it impossible to have a literal > backslash as the last character of a string without doubling it". > > So you have a construct (r'...') whose sole reason for existence > is to ignore escapes, but it REQUIRES an escape mechanism for one > specific case (which comes up frequently in Windows pathnames). >
You have a construct whose primary intent is to make it easier to write regular expressions without doubling all the backslashes. Regular expressions are quite likely to contain both single and double quote marks, so you need some way to include both kinds of quote marks. Regular expressions also cannot end with a single backslash. If you need Windows pathnames then you can almost always just write them using forward slashes (and use os.path.normpath() on them if you really need backslashes). There are many other strings which cannot be easily represented as a raw string: they are a convenience but not a replacement for ordinary string literals. -- http://mail.python.org/mailman/listinfo/python-list