У меня есть следующий набор данных
'Fʀɪᴇɴᴅ',
'ᴍᴏᴍ',
'ᴍᴀᴋᴇs',
'ʜᴏᴜʀʟʏ',
'ᴛʜᴇ',
'ᴄᴏᴍᴘᴜᴛᴇʀ',
'ʙᴇᴇɴ',
'ᴏᴜᴛ',
'ᴀ',
'ᴊᴏʙ',
'ғᴏʀ',
'ᴍᴏɴᴛʜs',
'ʙᴜᴛ',
'ʟᴀsᴛ',
'ᴍᴏɴᴛʜ',
'ʜᴇʀ',
'ᴄʜᴇᴄᴋ',
'ᴊᴜsᴛ',
'ᴡᴏʀᴋɪɴɢ',
'ғᴇᴡ',
'ʜᴏᴜʀs',
'sᴏᴜʀᴄᴇ',
Я хочу затем в формате ASCII, используя скрипт Python, например:
Fʀɪᴇɴᴅ - FRIEND
ᴍᴏᴍ - MOM
Я пробовал кодирование декодирования, но это не работает, я также пробовал это решение. но это не решает мою проблему.
Python не предоставляет способ прямого преобразования символов маленьких заглавных букв в их эквиваленты ASCII. Однако это можно сделать с помощью str.translate.
Чтобы использовать str.translate
нам нужно создать отображение порядковых значений символов маленьких заглавных букв в символы ASCII.
Чтобы получить порядковые значения, мы можем создать имя каждого символа, затем получить символ из базы данных unicodedata и вызвать его значение ord. Обратите внимание, что нет маленького заглавного символа 'X', и в версиях Python до 3.7 маленьких заглавных букв 'Q' нет.
>>> from string import ascii_uppercase
>>> import unicodedata as ud
>>> # Filter out unsupported characters
>>> # Python < 3.7
>>> letters = (x for x in ascii_uppercase if x not in ('Q', 'X'))
>>> # Python >= 3.7
>>> letters = (x for x in ascii_uppercase if x != 'X')
>>> mapping = {ord(ud.lookup('LATIN LETTER SMALL CAPITAL ' + x)): x for x in letters}
Получив отображение, мы можем использовать его для создания таблицы перевода для str.translate
, используя str.maketrans, а затем выполнить преобразования.
>>> # Make as translation table
>>> tt = str.maketrans(mapping)
>>> # Use the table to "translate" strings to their ASCII equivalent.
>>> s = 'ᴍᴏɴᴛʜ'
>>> s.translate(tt)
'MONTH'
unicodedata