过滤使用utf-8编码的文本仅包含拉丁字母字符

时间:2017-09-05 15:56:18

标签: python encoding utf-8

我尝试过滤textdata只包含拉丁字符,以便进一步进行文本分析。原始文本源很可能包含韩文字母。这在文本文件中显示如下:

\xe7\xac\xac8\xe4\xbd\x8d ONE PIECE FILM GOLD Blu-ray GOLDEN LIMITED EDITION

什么是最快/最简单/最完整的方法来删除这些?我尝试制作一个可以删除所有\ xXX组合的脚本,但事实证明这有很多例外,这是可靠的。

有没有办法从utf-8编码的文本中删除所有没有拉丁字符?

提前致谢。

解决方案:

import string

textin = b'\xe7\xac\xac8\xe4\xbd\x8d ONE PIECE FILM GOLD Blu-ray GOLDEN LIMITED EDITION'.decode('UTF-8')
outtext = ''

for char in textin:
    if char in string.printable:
        outtext += char

print(outtext)

我的数据由于某种原因被解码为位,不要问我为什么。 :d

2 个答案:

答案 0 :(得分:0)

怎么样:

import string

intext = b'<your funny characters>'
outtext = ''

for char in intext.decode('utf-8'):
    if char in string.ascii_letters:
        outtext += char

我不确定这是你想要的。对于给定的intext,outtext为空。如果将string.digits追加到string.ascii_letters,则outtext为'11'。

(编辑修复代码中的错误,由OP指出)

答案 1 :(得分:-1)

在阅读csv文件时,请尝试进行以下编码:

df=pd.read_csv('D:/sample.csv',encoding="utf-8-sig")