我有以下数据集
'Fʀɪᴇɴᴅ',
'ᴍᴏᴍ',
'ᴍᴀᴋᴇs',
'ʜᴏᴜʀʟʏ',
'ᴛʜᴇ',
'ᴄᴏᴍᴘᴜᴛᴇʀ',
'ʙᴇᴇɴ',
'ᴏᴜᴛ',
'ᴀ',
'ᴊᴏʙ',
'ғᴏʀ',
'ᴍᴏɴᴛʜs',
'ʙᴜᴛ',
'ʟᴀsᴛ',
'ᴍᴏɴᴛʜ',
'ʜᴇʀ',
'ᴄʜᴇᴄᴋ',
'ᴊᴜsᴛ',
'ᴡᴏʀᴋɪɴɢ',
'ғᴇᴡ',
'ʜᴏᴜʀs',
'sᴏᴜʀᴄᴇ',
我想使用Python脚本进入ASCII格式,例如:
Fʀɪᴇɴᴅ - FRIEND
ᴍᴏᴍ - MOM
我尝试过编码解码,但这不起作用我也试过这个solution。但这并没有解决我的问题。
Python没有提供将small caps字符直接转换为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'