news 2026/5/3 23:47:29

Python第三方库Emoji库的使用教程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python第三方库Emoji库的使用教程

0. 背景

Emoji库是一个Python第三方库,用于在程序中处理和使用表情符号。表情符号(Emoji)起源于日本,最初由栗田穣崇(Shigetaka Kurita)在1999年创建,用于在移动通信中传达情感和信息。随着智能手机的普及,表情符号已成为全球通用的视觉语言。

Python的emoji库提供了一种程序化方式来处理表情符号,使开发者能够在文本、日志、用户界面等场景中动态添加表情符号。

1. 作用

Emoji库主要提供以下功能:

  • 将表情符号名称转换为实际表情符号(如 : smile:→ 😊)
  • 将文本中的表情符号反向解析为名称(如😊 → : smile:)
  • 统计文本中的表情符号数量
  • 获取表情符号列表
  • 提供表情符号的标准化名称

2. 安装Emoji库

1

pipinstallemoji

注意:正确的包名是"emoji"而不是"emoij",这是常见的拼写错误。

3. 使用

3.1 通过名称获取表情符号

1

2

3

4

5

6

7

8

9

importemoji

# 基本用法

print(emoji.emojize(":smiling_face_with_smiling_eyes:"))

print(emoji.emojize(":thumbs_up:"))

# 在文本中使用

text=f"任务完成 {emoji.emojize(':check_mark:')}"

print(text)

输出结果:

1

2

3

😊

👍

任务完成 ✔️

3.2 反向解析表情符号

1

2

3

4

5

6

print(emoji.demojize("😊"))

print(emoji.demojize("👍"))

# 处理包含表情符号的文本

text_with_emoji="任务完成 ✅,继续努力 💪"

print(emoji.demojize(text_with_emoji))

输出:

1

2

3

:smiling_face_with_smiling_eyes:

:thumbs_up:

任务完成 :check_mark_button:,继续努力 :flexed_biceps:

3.3 统计和检查表情符号

1

2

3

4

5

6

7

8

# 统计文本中的表情符号数量

text="今天心情很好 😊,工作进展顺利 👍"

count=emoji.emoji_count(text)

print(f"文本中包含 {count} 个表情符号")

# 检查文本是否包含表情符号

has_emoji=emoji.emoji_count(text) >1

print(f"文本是否包含表情符号: {has_emoji}")

输出:

1

2

文本中包含2个表情符号

文本是否包含表情符号:True

3.4 常见表情符号分类

3.4.1 情感表达类

1

2

3

4

5

6

7

8

9

10

emotions={

"开心":":smiling_face_with_smiling_eyes:",

"大笑":":grinning_face_with_big_eyes:",

"爱心":":red_heart:",

"思考":":thinking_face:",

"惊讶":":face_with_open_mouth:"

}

forname, emoji_codeinemotions.items():

print(f"{name}: {emoji.emojize(emoji_code)}")

输出:

开心: 😊
大笑: 😃
爱心: ❤️
思考: 🤔
惊讶: 😮

3.4.2 状态指示类

1

2

3

4

5

6

7

8

9

10

status={

"成功":":check_mark:",

"失败":":cross_mark:",

"警告":":warning:",

"信息":":information:",

"问题":":red_question_mark:"

}

forname, emoji_codeinstatus.items():

print(f"{name}: {emoji.emojize(emoji_code)}")

输出:
成功: ✔️
失败: ❌
警告: ⚠️
信息: ℹ️
问题: ❓

3.4.3 功能操作类

1

2

3

4

5

6

7

8

9

10

functions={

"搜索":":magnifying_glass_tilted_left:",

"设置":":gear:",

"主页":":house:",

"邮件":":envelope:",

"电话":":telephone:"

}

forname, emoji_codeinfunctions.items():

print(f"{name}: {emoji.emojize(emoji_code)}")

输出:
搜索: 🔍
设置: ⚙️
主页: 🏠
邮件: ✉️
电话: ☎️

4. 实际应用示例

4.1 日志记录增强

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

importemoji

fromdatetimeimportdatetime

deflog_with_emoji(level, message):

level_emojis={

"INFO":":information:",

"WARNING":":warning:",

"ERROR":":cross_mark:",

"SUCCESS":":check_mark:"

}

timestamp=datetime.now().strftime("%Y-%m-%d %H:%M:%S")

emoji_icon=emoji.emojize(level_emojis.get(level, ""))

returnf"[{timestamp}] [{level}] {emoji_icon} {message}"

# 使用示例

print(log_with_emoji("INFO","系统启动完成"))

print(log_with_emoji("WARNING","内存使用率较高"))

print(log_with_emoji("ERROR","数据库连接失败"))

print(log_with_emoji("SUCCESS","文件上传成功"))

输出:

[2026-01-08 20:34:36] [INFO] ℹ️ 系统启动完成
[2026-01-08 20:34:36] [WARNING] ⚠️ 内存使用率较高
[2026-01-08 20:34:36] [ERROR] ❌ 数据库连接失败
[2026-01-08 20:34:36] [SUCCESS] ✔️ 文件上传成功

4.2 状态报告生成

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

importemoji

fromdatetimeimportdatetime

defsafe_emojize(emoji_code, fallback=None):

"""

安全地将表情符号代码转换为表情符号

如果emoji库无法解析,则使用fallback提供的表情符号

"""

try:

result=emoji.emojize(emoji_code)

# 如果转换失败(结果与输入相同),使用fallback

ifresult==emoji_codeandfallback:

returnfallback

returnresult

except:

returnfallbackoremoji_code

defgenerate_status_report():

# 使用双重保险机制:先尝试使用emoji库,如果失败则使用直接输入的表情符号

returnf"""

{safe_emojize(':bar_chart:', '📊')} 系统状态报告

{safe_emojize(':check_mark:', '✅')} 服务状态: 正常

{safe_emojize(':chart_with_upwards_trend:', '📈')} CPU使用率: 45%

{safe_emojize(':chart_with_downwards_trend:', '📉')} 内存使用率: 62%

{safe_emojize(':alarm_clock:', '⏰')} 运行时间: 3天12小时

{safe_emojize(':information_source:', 'ℹ️')} 最后更新: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}

"""

print(generate_status_report())

输出:
📊 系统状态报告
✔️ 服务状态: 正常
📈 CPU使用率: 45%
📉 内存使用率: 62%
⏰ 运行时间: 3天12小时
ℹ️ 最后更新: 2026-01-08 20:47:19

5.完整代码

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

160

161

162

163

164

165

166

167

168

169

170

171

172

173

174

175

176

177

178

179

180

181

182

183

184

185

186

187

188

189

190

191

192

193

194

195

196

197

198

199

200

201

202

203

204

205

206

207

208

209

210

211

212

213

importemoji

# ==================== 1. 基础使用 ====================

print("=== 1. 基础使用 ===")

# 1.1 通过名称获取表情符号

print("1.1 通过名称获取表情符号:")

print(f"搜索图标: {emoji.emojize(':magnifying_glass_tilted_left:')}")# 🔍

print(f"笔记图标: {emoji.emojize(':memo:')}")# 📝

print(f"笑脸: {emoji.emojize(':smiling_face_with_smiling_eyes:')}")# 😄

# 1.2 在文本中使用表情符号

print("\n1.2 在文本中使用表情符号:")

query="Python编程"

formatted_text=f"{emoji.emojize(':magnifying_glass_tilted_left:')} 搜索查询: {query}"

print(formatted_text)

# ==================== 2. 常用表情符号分类 ====================

print("\n=== 2. 常用表情符号分类 ===")

# 2.1 搜索与信息类

print("\n2.1 搜索与信息类:")

# 使用直接输入的表情符号作为后备方案

search_icons={

"搜索": ("🔍",":magnifying_glass_tilted_left:"),

"新闻": ("📰",":newspaper:"),

"链接": ("🔗",":link:"),

"信息": ("ℹ️",":information_source:"),

"警告": ("⚠️",":warning:"),

"问题": ("❓",":question:")

}

forname, (direct, name_code)insearch_icons.items():

# 尝试使用emoji库,如果失败则使用直接输入的表情符号

try:

emoji_result=emoji.emojize(name_code)

ifemoji_result==name_code:# 如果没有转换,使用直接输入的

emoji_result=direct

except:

emoji_result=direct

print(f"{name}: {emoji_result}")

# 2.2 时间与日期类

print("\n2.2 时间与日期类:")

time_icons={

"时钟": ("🕐",":clock:"),

"日历": ("📅",":calendar:"),

"闹钟": ("⏰",":alarm_clock:"),

"沙漏": ("⏳",":hourglass:"),

"秒表": ("⏱️",":stopwatch:")

}

forname, (direct, name_code)intime_icons.items():

try:

emoji_result=emoji.emojize(name_code)

ifemoji_result==name_code:

emoji_result=direct

except:

emoji_result=direct

print(f"{name}: {emoji_result}")

# 2.3 数据与图表类

print("\n2.3 数据与图表类:")

data_icons={

"图表": ("📊",":bar_chart:"),

"增长": ("📈",":chart_with_upwards_trend:"),

"下降": ("📉",":chart_with_downwards_trend:"),

"统计": ("📋",":clipboard:"),

"文件": ("📄",":page_facing_up:")

}

forname, (direct, name_code)indata_icons.items():

try:

emoji_result=emoji.emojize(name_code)

ifemoji_result==name_code:

emoji_result=direct

except:

emoji_result=direct

print(f"{name}: {emoji_result}")

# 2.4 状态与操作类

print("\n2.4 状态与操作类:")

status_icons={

"成功": ("✅",":check_mark:"),

"错误": ("❌",":cross_mark:"),

"警告": ("⚠️",":warning:"),

"信息": ("ℹ️",":information_source:"),

"加载": ("⏳",":hourglass_not_done:"),

"完成": ("🏁",":checkered_flag:")

}

forname, (direct, name_code)instatus_icons.items():

try:

emoji_result=emoji.emojize(name_code)

ifemoji_result==name_code:

emoji_result=direct

except:

emoji_result=direct

print(f"{name}: {emoji_result}")

# ==================== 3. 高级功能 ====================

print("\n=== 3. 高级功能 ===")

# 3.1 反向解析 - 将表情符号转换为名称

print("\n3.1 反向解析:")

text_with_emojis="🔍 搜索 📝 笔记 ✅ 完成"

print(f"原始文本: {text_with_emojis}")

print(f"解析后: {emoji.demojize(text_with_emojis)}")

# 3.2 获取所有表情符号列表

print("\n3.2 获取特定表情符号列表:")

print("所有笑脸类表情符号:")

# 使用emoji_list获取包含特定表情符号的文本列表

smileys=emoji.emoji_list(emoji.emojize(':smiling_face_with_smiling_eyes:'))

print(f"找到 {len(smileys)} 个笑脸类表情符号")

# 3.3 检查文本中是否包含表情符号

print("\n3.3 检查文本中是否包含表情符号:")

text1="这是一个普通文本"

text2="这是一个包含😊表情的文本"

print(f"'{text1}' 包含表情符号: {emoji.emoji_count(text1) > 0}")

print(f"'{text2}' 包含表情符号: {emoji.emoji_count(text2) > 0}")

print(f"'{text2}' 包含 {emoji.emoji_count(text2)} 个表情符号")

# ==================== 4. 实际应用示例 ====================

print("\n=== 4. 实际应用示例 ===")

# 4.1 模拟搜索结果格式化

print("\n4.1 模拟搜索结果格式化:")

defformat_search_result(title, content, url):

# 使用直接输入的表情符号确保兼容性

returnf"""

🔍 {title}

📄 {content[:50]}...

🔗 {url}

"""

search_result=format_search_result(

"Python编程入门教程",

"Python是一种广泛使用的高级编程语言,具有简洁易读的语法",

"https://example.com/python-tutorial"

)

print(search_result)

# 4.2 模拟日志记录

print("\n4.2 模拟日志记录:")

deflog_message(level, message):

# 使用直接输入的表情符号确保兼容性

level_icons={

"INFO":"ℹ️",

"WARNING":"⚠️",

"ERROR":"❌",

"SUCCESS":"✅"

}

icon=level_icons.get(level,"ℹ️")

returnf"[{level}] {icon} {message}"

print(log_message("INFO","系统启动完成"))

print(log_message("WARNING","内存使用率较高"))

print(log_message("ERROR","数据库连接失败"))

print(log_message("SUCCESS","文件上传成功"))

# 4.3 模拟状态报告

print("\n4.3 模拟状态报告:")

defcreate_status_report():

# 使用直接输入的表情符号确保兼容性

returnf"""

📊 系统状态报告

✅ 服务状态: 正常

📈 CPU使用率: 45%

📉 内存使用率: 62%

🕐 运行时间: 3天12小时

ℹ️ 最后更新: 🕐 2023-12-26 15:30

"""

print(create_status_report())

# ==================== 5. 直接使用表情符号(无需emoji库)====================

print("\n=== 5. 直接使用表情符号(无需emoji库) ===")

print("在某些情况下,可以直接在代码中输入表情符号:")

direct_emoji_text="""

🔍 搜索功能

📝 笔记功能

📊 数据分析

⏰ 时间管理

✅ 任务完成

❌ 错误处理

"""

print(direct_emoji_text)

# ==================== 6. 常见表情符号名称对照表 ====================

print("\n=== 6. 常见表情符号名称对照表 ===")

common_emojis={

"🔍":":magnifying_glass_tilted_left:",

"📝":":memo:",

"😄":":smiling_face_with_smiling_eyes:",

"📰":":newspaper:",

"🔗":":link:",

"ℹ️":":information_source:",

"⚠️":":warning:",

"❓":":question:",

"📅":":calendar:",

"⏰":":alarm_clock:",

"📊":":bar_chart:",

"📈":":chart_with_upwards_trend:",

"📉":":chart_with_downwards_trend:",

"📋":":clipboard:",

"📄":":page_facing_up:",

"✅":":check_mark:",

"❌":":cross_mark:",

"⏳":":hourglass_not_done:",

"🏁":":checkered_flag:"

}

print("表情符号与名称对照:")

forsymbol, nameincommon_emojis.items():

print(f"{symbol} -> {name}")

输出:
=== 1. 基础使用 ===
1.1 通过名称获取表情符号:
搜索图标: 🔍
笔记图标: 📝
笑脸: 😊

1.2 在文本中使用表情符号:
🔍 搜索查询: Python编程

=== 2. 常用表情符号分类 ===

2.1 搜索与信息类:
搜索: 🔍
新闻: 📰
链接: 🔗
信息: ℹ️
警告: ⚠️
问题: ❓

2.2 时间与日期类:
时钟: 🕐
日历: 📅
闹钟: ⏰
沙漏: ⏳
秒表: ⏱️

2.3 数据与图表类:
图表: 📊
增长: 📈
下降: 📉
统计: 📋
文件: 📄

2.4 状态与操作类:
成功: ✔️
错误: ❌
警告: ⚠️
信息: ℹ️
加载: ⏳
完成: 🏁

=== 3. 高级功能 ===

3.1 反向解析:
原始文本: 🔍 搜索 📝 笔记 ✅ 完成
解析后: :magnifying_glass_tilted_left: 搜索 📝 笔记 :check_mark_button: 完成

3.2 获取特定表情符号列表:
所有笑脸类表情符号:
找到 1 个笑脸类表情符号

3.3 检查文本中是否包含表情符号:
‘这是一个普通文本’ 包含表情符号: False
‘这是一个包含😊表情的文本’ 包含表情符号: True
‘这是一个包含😊表情的文本’ 包含 1 个表情符号

=== 4. 实际应用示例 ===

4.1 模拟搜索结果格式化:

🔍 Python编程入门教程
📄 Python是一种广泛使用的高级编程语言,具有简洁易读的语法…
🔗 https://example.com/python-tutorial

4.2 模拟日志记录:
[INFO] ℹ️ 系统启动完成
[WARNING] ⚠️ 内存使用率较高
[ERROR] ❌ 数据库连接失败
[SUCCESS] ✅ 文件上传成功

4.3 模拟状态报告:

📊 系统状态报告
✅ 服务状态: 正常
📈 CPU使用率: 45%
📉 内存使用率: 62%
🕐 运行时间: 3天12小时
ℹ️ 最后更新: 🕐 2023-12-26 15:30

=== 5. 直接使用表情符号(无需emoji库) ===
在某些情况下,可以直接在代码中输入表情符号:

🔍 搜索功能
📝 笔记功能
📊 数据分析
⏰ 时间管理
✅ 任务完成
❌ 错误处理


版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/3 23:44:30

3分钟快速上手:qmcdump终极指南——轻松解码QQ音乐加密文件

3分钟快速上手:qmcdump终极指南——轻松解码QQ音乐加密文件 【免费下载链接】qmcdump 一个简单的QQ音乐解码(qmcflac/qmc0/qmc3 转 flac/mp3),仅为个人学习参考用。 项目地址: https://gitcode.com/gh_mirrors/qm/qmcdump …

作者头像 李华
网站建设 2026/5/3 23:36:43

云计算终极指南:从零到架构专家的10个技术突围秘籍

云计算终极指南:从零到架构专家的10个技术突围秘籍 【免费下载链接】geektime-books :books: 极客时间电子书 项目地址: https://gitcode.com/GitHub_Trending/ge/geektime-books 在数字化时代,云计算已成为企业数字化转型的核心引擎。极客时间电…

作者头像 李华
网站建设 2026/5/3 23:35:52

Go-Patterns项目测试驱动开发:22个模式的单元测试完全解析

Go-Patterns项目测试驱动开发:22个模式的单元测试完全解析 【免费下载链接】go-patterns Design patterns in Golang 项目地址: https://gitcode.com/gh_mirrors/gop/go-patterns Go-Patterns项目(GitHub加速计划/gop)是一个专注于Gol…

作者头像 李华
网站建设 2026/5/3 23:29:48

EverydayWechat终极指南:跨时区消息定时发送与智能回复完整教程

EverydayWechat终极指南:跨时区消息定时发送与智能回复完整教程 【免费下载链接】EverydayWechat 微信助手:1.每日定时给好友(女友)发送定制消息。2.机器人自动回复好友。3.群助手功能(例如:查询垃圾分类、…

作者头像 李华