Удаление двух непечатаемых символов из строки в Python - PullRequest
0 голосов
/ 28 октября 2019

Я получаю текст, как показано ниже, читая файл слов

Exe Command\r\x07

Мой желаемый текст

Exe Command

Я пробовал это решение , но оно даетя

 Exe Command\r

Как я могу удалить 2 любых символа обратной косой черты? Я хотел бы получить решение, дружественное к скорости, потому что у меня есть тысячи таких входов.

1 Ответ

0 голосов
/ 28 октября 2019

Вы можете использовать метод replace() дважды.

In [1]: myStr.replace("\r", "").replace("\x07", "")
Out[1]: 'Exe Command'

Если это не работает, вы можете попробовать использовать необработанную строку

In [1]: myStr.replace(r"\r", "").replace(r"\x07", "")
Out[1]: 'Exe Command'

РЕДАКТИРОВАТЬ: Согласно комментарию, для удаления любого из этих управляющих символов, используйте решение этого сообщения .

import unicodedata
def remove_control_characters(s):
    return "".join(ch for ch in s if unicodedata.category(ch)[0]!="C")

Все кредиты для этого решения идут Алексу Куинну.

...