emoji, 一個神奇的 Python 庫
在使用即時通訊軟件與朋友聊天時,我們常常發(fā)送一些表情來表達情感,豐富文字的內涵。這些表情符號并不是圖片,而是文字。
當前,計算機普遍使用 Unicode 字符集來確定二進制字節(jié)與文字的對應關系。在 Unicode 字符集中,定義了包括英文、法文、中文等多種語言的文字,并且也定義了表情符號,這些表情符號被稱為 emoji。
Python 的 emoji 庫是一個用于處理表情符號(Emoji)的第三方庫,可以方便地在字符串中添加、移除或轉換 Emoji 符號。

安裝
emoji 庫屬于第三方庫,在使用之前,需要提前進行安裝和導入:
pip install emoji資料
- 官方表情符清單:https://www.webfx.com/tools/emoji-cheat-sheet/
 - 官網(wǎng):https://pypi.org/project/emoji/
 

示例
emoji 模塊主要包含2個函數(shù)
- emoji.emojize() : 將表情符號短代碼轉換為實際的 emoji
 - emoji.demojize() : 將 emoji 轉換為表情符號短代碼
 
import emoji
# 短代碼轉換為emoji
text = "I love :heart: Python :snake:"
print(emoji.emojize(text, language='alias'))
# emoji轉換為短代碼
emoji_text = "I love ?? Python ??"
print(emoji.demojize(emoji_text))輸出調試:
I love ?? Python ??
I love :red_heart: Python :snake:高級
查看所有支持emoji數(shù)據(jù)集:
import emoji
for k, v in emoji.EMOJI_DATA.items():
    print(k, v)輸出結果:
...
???? {'en': ':vampire_dark_skin_tone:', 'status': 2, 'E': 5}
???? {'en': ':vampire_light_skin_tone:', 'status': 2, 'E': 5}
???? {'en': ':vampire_medium-dark_skin_tone:', 'status': 2, 'E': 5}
???? {'en': ':vampire_medium-light_skin_tone:', 'status': 2, 'E': 5}
???? {'en': ':vampire_medium_skin_tone:', 'status': 2, 'E': 5}
?? {'en': ':vertical_traffic_light:', 'status': 2, 'E': 1}
?? {'en': ':vibration_mode:', 'status': 2, 'E': 0.6}
?? {'en': ':victory_hand:', 'status': 2, 'E': 0.6, 'alias': [':v:'], 'variant': True}
? {'en': ':victory_hand:', 'status': 4, 'E': 0.6, 'alias': [':v:'], 'variant': True}
??? {'en': ':victory_hand_dark_skin_tone:', 'status': 2, 'E': 1}
??? {'en': ':victory_hand_light_skin_tone:', 'status': 2, 'E': 1}
??? {'en': ':victory_hand_medium-dark_skin_tone:', 'status': 2, 'E': 1}
??? {'en': ':victory_hand_medium-light_skin_tone:', 'status': 2, 'E': 1}
??? {'en': ':victory_hand_medium_skin_tone:', 'status': 2, 'E': 1}
?? {'en': ':video_camera:', 'status': 2, 'E': 0.6, 'variant': True}
?? {'en': ':video_game:', 'status': 2, 'E': 0.6, 'variant': True}
?? {'en': ':videocassette:', 'status': 2, 'E': 0.6, 'alias': [':vhs:']}
...檢查字符串是否為 emoji:
import emoji
print(emoji.is_emoji("??"))  # 輸出: True- 計算文本中的 emoji 數(shù)量:
 
import emoji
print(emoji.emoji_count("Python?? is ??"))  # 2- 替換文本中的所有 emoji:
 
import emoji
print(emoji.replace_emoji("I love ?? coding", ""))- 使用別名
 
前面通過emoji.EMOJI_DATA 字典來查看所有支持的 emoji時,結果集為字典內容,有些定義了別名。
?? {'en': ':upwards_button:', 'status': 2, 'E': 0.6, 'alias': [':arrow_up_small:']}測試代碼:
import emoji
print(emoji.emojize(':upwards_button: equal :arrow_up_small:'))
print(emoji.emojize(':arrow_up_small: equal :upwards_button:', language='alias'))輸出結果:
?? alias :arrow_up_small:
?? alias ??特點和優(yōu)勢
- 標準化:確保 emoji 在不同平臺上的一致性
 - 可維護性:使用短代碼比直接使用 emoji 字符更易于維護
 - 跨平臺:解決不同系統(tǒng)對 emoji 的兼容性問題
 - 靈活性:支持多種表示方式(短代碼、別名、Unicode)
 















 
 
 

















 
 
 
 