Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: Ecetrin 10. 04. 2019, 11:53:48
-
Ahoj,
mám v Pythonu raw řetězec v tomto stylu: '\\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: '\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 my_string.encode('raw_unicode_escape').decode('ascii')
Bohužel, nějak se nemohu dobrat požadovaného výsledku... >:(
Poradil by někdo?
-
codecs.escape_decode() ?
-
Děkuji za radu, zkoušel jsem, ale bohužel neúspěšně :(. Někde asi dělám něco špatně...
-
fakt?
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
-
Imho nemáš raw řetězec nebo tě plete repr výstup:
>>>
>>> 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
-
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
-
on funguje i replace('\\\\', '\\') na raw stringu podle qelurg