Steven D'Aprano wrote:
Diez B. Roggisch wrote:

Mirko Dziadzka schrieb:
I'm trying to find a way to output strings in the raw-string format, e.g.
print_as_raw_string(r"\.") should output r"\." instead of "\\."  ...
In any case, this is just a variation of what repr() does.
repr(r'\.')
"'\\\\.'"

What the OP seems to want is something like:...  a barely tested version:

def raw_repr(s):
    """Return the repr of string s as a raw-string."""
    r = repr(s)
    if '\\\\' in r:
        r = "r" + r.replace('\\\\', '\\')
    assert not r.endswith('\\')
    return r
...
The big issue I see is that lots of values cannot be represented
as raw strings.  Your code checks for a final '\', but many "control"
characters and the quote marks are also at issue.

raw_repr('["\']a\x13\xfebc\\de') should contain several nasty cases.


--Scott David Daniels
scott.dani...@acm.org
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to