首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >过滤以utf-8编码的文本,使其仅包含拉丁字母字符。

过滤以utf-8编码的文本,使其仅包含拉丁字母字符。
EN

Stack Overflow用户
提问于 2017-09-05 15:56:17
回答 2查看 885关注 0票数 1

为了进一步分析文本,我尝试将文本数据过滤为只包含拉丁字符。原始文本源很可能包含韩文字母表。在文本文件中如下所示:

代码语言:javascript
复制
\xe7\xac\xac8\xe4\xbd\x8d ONE PIECE FILM GOLD Blu-ray GOLDEN LIMITED EDITION

什么是最快/最简单/最完整的方法来去除这些?我试着编写一个脚本来删除所有\xXX组合,但事实证明,除了许多例外情况,这是可靠的。

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

提前谢谢。

解决办法:

代码语言:javascript
复制
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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-09-05 16:25:43

那这个呢?

代码语言:javascript
复制
import string

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

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

但我不确定这是你想要的。对于给定的文本,输出是空的。如果将string.digits附加到string.ascii_letters,则输出为'11‘。

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

票数 1
EN

Stack Overflow用户

发布于 2017-09-05 15:59:29

在读取csv文件时,尝试按以下方式进行编码:

代码语言:javascript
复制
df=pd.read_csv('D:/sample.csv',encoding="utf-8-sig")
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46059104

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档