Python escape sekvence

Python escape sekvence
« kdy: 10. 04. 2019, 11:53:48 »
Ahoj,

mám v Pythonu raw řetězec v tomto stylu: 
Kód: [Vybrat]
'\\u2551\\033[32m \\u00a9MM, spol. s r. o. \\u00ae \\033[0m'.
Potřeboval bych z každého dvojitého zpětného lomítka odstranit právě jedno, abych získal:
Kód: [Vybrat]
'\u2551\033[32m \u00a9MM, spol. s r. o. \u00ae \033[0m', což představuje koncový řetězec, který skončí ve zdrojáku jednoho embedded zařízení, jenž ho bude dále vypisovat na konzoli.

Zkoušel jsem všechno možné, od prostého replace, po konstrukce typu
Kód: [Vybrat]
my_string.encode('raw_unicode_escape').decode('ascii')
Bohužel, nějak se nemohu dobrat požadovaného výsledku... >:(

Poradil by někdo?


Re:Python escape sekvence
« Odpověď #1 kdy: 10. 04. 2019, 12:52:59 »
codecs.escape_decode() ?

Re:Python escape sekvence
« Odpověď #2 kdy: 10. 04. 2019, 13:34:52 »
Děkuji za radu, zkoušel jsem, ale bohužel neúspěšně :(. Někde asi dělám něco špatně...

Re:Python escape sekvence
« Odpověď #3 kdy: 10. 04. 2019, 14:36:28 »
fakt?

Kód: [Vybrat]
my_string = r'\\u2551\\033[32m \\u00a9MM, spol. s r. o. \\u00ae \\033[0m'
print(my_string)

\\u2551\\033[32m \\u00a9MM, spol. s r. o. \\u00ae \\033[0m

print(codecs.escape_decode(my_string)[0].decode())

\u2551\033[32m \u00a9MM, spol. s r. o. \u00ae \033[0m


qelurg

  • ****
  • 386
    • Zobrazit profil
    • E-mail
Re:Python escape sekvence
« Odpověď #4 kdy: 10. 04. 2019, 14:40:34 »
Imho nemáš raw řetězec nebo tě plete repr výstup:
 
Kód: [Vybrat]
>>>
>>> s = r'\\u2551\\033[32m \\u00a9MM, spol. s r. o. \\u00ae \\033[0m'
>>> print(s)
\\u2551\\033[32m \\u00a9MM, spol. s r. o. \\u00ae \\033[0m
>>> print(s.replace('\\\\', '\\'))
\u2551\033[32m \u00a9MM, spol. s r. o. \u00ae \033[0m


Re:Python escape sekvence
« Odpověď #5 kdy: 11. 04. 2019, 09:13:21 »
Ahoj,

díky za rady, přiznávám, že jsem vrták nepozorný, řešení s codecs.escape_decode() funguje, chyba byla mezi klávesnicí a monitorem  :D

Re:Python escape sekvence
« Odpověď #6 kdy: 11. 04. 2019, 10:19:28 »
on funguje i replace('\\\\', '\\') na raw stringu podle qelurg