Я написав додаток Python3, який викликає fortuneта фіксує вихід для відображення в екрані сповіщення.
Деякі статки містять квадрати з шістнадцятковим числом, коли відповідний гліф не існує у поточному шрифті. Кожен квадрат є поданням шістнадцяткової кодової точки Unicode для відсутнього гліфа.
Я хочу видалити шістнадцятковий текст перед тим, як показувати користувачеві. Я сподівався знайти якийсь API Python, який дозволить мені перевірити текст, символ за символом, щоб визначити щось подібне char.isValidCodePoint()чи подібне, але я не можу знайти його як такого.
Я знайшов можливе рішення, яке хотів дослідити тут, але після установки fonttoolsчерез термінал моя програма Python не могла імпортувати fonttools/fontTools.
Будь-які ідеї - або за допомогою API Python, або для виклику до терміналу?
Оновлення №1: з тих пір я зрозумів, що fonttoolsзразок коду з наведеного вище посилання не працюватиме для мене, як це Python2. Я гадаю, що якщо fonttoolsякимось чином можна було б використати, я міг би викликати інтерпретатора Python2 з мого сценарію Python3.
Оновлення №2: Після читання (див. Посилання нижче) я з тих пір знайшов, fc-matchале він не завжди може однозначно визначити шрифт, який використовується. Я отримую поточний шрифт у Python:
from gi.repository import Gio
fontName = Gio.Settings( "org.gnome.desktop.interface" ).get_string( "font-name" )
в результаті чого Ubuntu 11. Передаючи цей результат pango-viewразом із шістнадцятковим символом, я отримую список шрифтів, у тому числі Ubuntu. На мій погляд, якщо гліф НЕ був наданий шрифтом, шрифт не повинен з’являтися в результаті з pango-view!
Список літератури: