Я использую для запуска
$s =~ s/[^[:print:]]//g;
на Perl, чтобы избавиться от непечатных символов.
В Python нет классов регулярных выражений POSIX, и я не могу написать [: print:], имея в виду то, что я хочу. Я не знаю, как в Python определить, является ли символ печатным или нет.
Что бы вы сделали?
РЕДАКТИРОВАТЬ: он также должен поддерживать символы Unicode. Способ string.printable с радостью удалит их из вывода.
curses.ascii.isprint вернет false для любого символа Юникода.