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

问题描述:

我正在尝试读取tweets并将这些tweet写入文件。但是,当我尝试将某些推文写入文件时,我收到了UnicodeEncodeErrors。有没有办法删除这些非UTF-8字符,以便我可以写出推文的其余部分?从python中的字符串中删除非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' codec can't encode character '\U0001f3a5' in position 56: character maps to

你是不是写一个UTF8编码文件,编码参数添加到open函数

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

玩得开心