Rawest raw string literals
mikhailwas at gmail.com
Sat Apr 22 17:13:26 EDT 2017
On 20 April 2017 at 18:40, Grant Edwards <grant.b.edwards at gmail.com> wrote:
> On 2017-04-20, Mikhail V <mikhailwas at gmail.com> wrote:
>> On 20 April 2017 at 17:59, Grant Edwards <grant.b.edwards at gmail.com> wrote:
>>> On 2017-04-20, Mikhail V <mikhailwas at gmail.com> wrote:
>>>> Quite often I need raw string literals for concatenating console commands.
>>>> I want to input them exactly as they are in python sources.
>>>> There is r"" string, but it is obviously not enough because e.g. this:
>>>> s = r"ffmpeg -i "\\server-01\D\SER_Bigl.mpg" "
>>> s = r'ffmpeg -i "\\server-01\D\SER_Bigl.mpg" '
>>> Does that do what you want?
>> Yes but it still needs to watch out if there is no ' inside or vice
>> versa with " characters if use r"". I would like a universal
> IOW, you want something that just reads your mind.
> How can there exist a "universal solution" even in theory?
> There has to be some sort of "end of literal" terminator character
> sequence. That means there has to be some sort of escaping mechanism
> when that "end of literal" sequence appears in the literal itself.
In *theory* one can define what characters can be part of the raw string.
In Python e.g. the newline character cannot be part of
the r"" string (unless a line ends with \):
k = r"abc
gives an error:
k = r"abc
SyntaxError: EOL while scanning string literal
So one could define a rule, that a raw string *must*
be terminated by the sequence quote + newline.
More information about the Python-list