从python中的字符串中删除非utf-8字符

时间:2017-07-30 02:59:31

标签: python-3.x twitter utf-8 twython

我正在尝试阅读推文并将这些推文写入文件。但是,当我尝试将一些推文写入文件时,我收到了UnicodeEncodeErrors。有没有办法删除这些非utf-8字符,以便我可以写出其余的推文?

例如,问题推文可能会这样看:

相机?

这是我正在使用的代码:

with open("Tweets.txt",'w') as f:
    for user_tws in twitter.get_user_timeline(screen_name='camera',
                                          count = 200):
        try:
            f.write(user_tws["text"] + '\n')
        except UnicodeEncodeError:
            print("skipped: " + user_tws["text"])
            mod_tw = user_tws["text"]
            mod_tw=mod_tw.encode('utf-8','replace').decode('utf-8')
            print(mod_tw)
            f.write(mod_tw)

错误是这样的:

  

UnicodeEncodeError:' charmap'编解码器不能对字符' \ U0001f3a5'进行编码。在位置56:字符映射到

1 个答案:

答案 0 :(得分:0)

您没有编写UTF8编码文件,请将编码参数添加到打开函数

with open("Tweets.txt",'w', encoding='utf8') as f:
    ...

玩得开心