On 8/9/2019 2:53 PM, Steven D'Aprano wrote:
On Fri, Aug 09, 2019 at 01:12:59PM -0700, Glenn Linderman wrote:
The reason I never use raw strings is in the documentation, it is because \ still has a special meaning, and the first several times I felt the need for raw strings, it was for directory names that wanted to end with \ and couldn't. Can you elaborate? I find it unlikely that I would ever want a docstring
I didn't mention docstring. I just wanted a string with a path name ending in \.
that ends with a backslash:
def func(): r"""Documentation goes here... more documentation... ending with a Windows path that needs a trailing backslash like this C:\directory\"""
That seems horribly contrived. Why use backslashes in the path when the strong recommendation is to use forward slashes?
Windows users are used to seeing backslashes in paths, I don't care to be the one to explain why my program uses / and all the rest use \.
And why not solve the problem by simply moving the closing quotes to the next line, as PEP 8 recommends?
r"""Documentation ... C:\directory\ """
This isn't my problem, I wasn't using docstrings, and including a newline in a path name doesn't work. I suppose one could "solve" the problem by using "c:\directory\ "[ :-1] but that is just as annoying as "c:\\directory\\" and back when I discovered the problem, I was still learning Python, and didn't think of the above solution either.
[...]
Even in a raw literal, quotes can be escaped with a backslash Indeed, they're not so much "raw" strings as only slightly blanched strings.