On 20 April 2017 at 18:40, Grant Edwards <grant.b.edwa...@gmail.com> wrote: > On 2017-04-20, Mikhail V <mikhail...@gmail.com> wrote: >> On 20 April 2017 at 17:59, Grant Edwards <grant.b.edwa...@gmail.com> wrote: >>> On 2017-04-20, Mikhail V <mikhail...@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 >> solution. > > 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 def" 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. In theory. Mikhail -- https://mail.python.org/mailman/listinfo/python-list