emoji库安装
直接pip install emoji
源数据:(数据是瞎编的哈)
emoji库主要有两个函数:
emojize()——>生成emoji表情
demojize()——>emoji表情解码
1 |
>> 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就不详细叙述了。# 导入库
1 |
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
1 |
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
1 |
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