emoji库安装
直接pip install emoji
源数据:(数据是瞎编的哈)
emoji库主要有两个函数:
emojize()——>生成emoji表情
demojize()——>emoji表情解码
>> import emoji
>> print(emoji.emojize('Python is :thumbs_up:'))
Python is 👍
>> print(emoji.emojize('Python is :thumbsup:', use_aliases=True))
Python is 👍
>> print(emoji.demojize('Python is 👍'))
Python is :thumbs_up:
处理
我的目的是把emoji表情剃掉,所以还需要用到re库,re就不详细叙述了。# 导入库
import emoji
import re
# 打开文件
with open('E:/python练习文件/emoji_txt.txt',encoding='UTF-8') as f:
data = f.read()
# print(emoji.demojize(data)) #测试一下成功没?以及看看emoji代码
content = re.sub('(\:.*?\:)', '', emoji.demojize(data))
print(content)
结果
源文件
记录:face_with_tears_of_joy:
嗯嗯
组长:party_popper::party_popper::party_popper:
来吧
回收:face_with_tears_of_joy:
大家记得哈:face_with_tears_of_joy:
你坐哪呢?
处理后
记录
嗯嗯
组长
来吧
回收
大家记得哈
你坐哪呢?
注意替换的这些emoji是标准的表情字符,每个表情本来是2个字节,替换成字符串后,每个表情就变成12个字符了,浪费了很多空间,不过简单,不需要专门写个map一一对应了;
把表情变成字符串
view plain copy
def filter_emoji(desstr,restr=''):
'''''
过滤表情
'''
try:
co = re.compile(u'[\U00010000-\U0010ffff]')
except re.error:
co = re.compile(u'[\uD800-\uDBFF][\uDC00-\uDFFF]')
return co.sub(restr, desstr)
把字符串变成表情
[python] view plain copy
def str_2_emoji(emoji_str):
'''''
把字符串转换为表情
'''
if not emoji_str:
return emoji_str
h = HTMLParser.HTMLParser()
emoji_str = h.unescape(h.unescape(emoji_str))
#匹配u"\U0001f61c"和u"\u274c"这种表情的字符串
co = re.compile(ur"u[\'\"]\\[Uu]([\w\"]{9}|[\w\"]{5})")
pos_list=[]
result=emoji_str
#先找位置
for m in co.finditer(emoji_str):
pos_list.append((m.start(),m.end()))
#根据位置拼接替换
for pos in range(len(pos_list)):
if pos==0:
result=emoji_str[0:pos_list[0][0]]
else:
result=result+emoji_str[pos_list[pos-1][1]:pos_list[pos][0]]
result = result +eval(emoji_str[pos_list[pos][0]:pos_list[pos][1]])
if pos==len(pos_list)-1:
result=result+emoji_str[pos_list[pos][1]:len(emoji_str)]
return result
————————————————
版权声明:本文为CSDN博主「junli_chen」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/junli_chen/article/details/77685128