为什么我的脚本不能正确打印Unicode字符?

2024-05-15 03:06:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在处理Twitter数据,我有一个包含一堆tweet的文件,每行一条。这些推特大多是用葡萄牙语写的,因此有“é”、“á”等特殊字符

我试图从文件中过滤停止词并标记tweets,但在我处理脚本后,无法正确打印特殊字符。你知道吗

示例:

AT_USER pra concurso público, tô entrando nessas agora porque emprego bom tá foda

变成:

[u'pra', u'concurso', u'p\xfablico', u't\xf4', u'entrando', u'nessas', u'agora', u'porque', u'emprego', u'bom', u't\xe1', u'foda']

为什么每个令牌前都有这个“u”?为什么“u”变成“\xfa”?你知道吗

我如何得到没有“u”和正确打印重音字符的代币?你知道吗

在这个gist中,您可以检查之前、之后的文本以及我使用的脚本。你知道吗

谢谢:)


Tags: 文件数据脚本twitterbomtweetagora特殊字符
2条回答

你有名单吗

>>> l = [u'pra', u'concurso', u'p\xfablico', u't\xf4', u'entrando', u'nessas', u'agora', u'porque', u'emprego', u'bom', u't\xe1', u'foda']

当你打印列表的时候,这些词看起来很奇怪

>>> print l
[u'pra', u'concurso', u'p\xfablico', u't\xf4', u'entrando', u'nessas', u'agora', u'porque', u'emprego', u'bom', u't\xe1', u'foda']

但是如果你把这些字印出来,看起来很好

>>> for word in l:
...     print word
... 
pra
concurso
público
tô
entrando
nessas
agora
porque
emprego
bom
tá
foda
>>> 

打印列表时,python打印列表的表示形式,这有助于程序员查看对象是什么。有括号和引号还有。。。一个“u”表示它是一个Unicode字符串,而不是一个常规的ascii字符串。您可以看到Unicode字符的ascii转义版本,因为这是用ascii查看这些字符的唯一方法。如果将打印的字符串作为python命令进行求值,甚至可以得到原始列表!你知道吗

>>> l2 = eval("[u'pra', u'concurso', u'p\xfablico', u't\xf4', u'entrando', u'nessas', u'agora', u'porque', u'emprego', u'bom', u't\xe1', u'foda']")
>>> l == l2
True

一切都很好!你只是得到了列表的极客视图。你知道吗

python3在处理Unicode方面做得更好。除非你有理由坚持2.x,否则快走!你知道吗

字符串前面的“u”表示您有一个unicode字符串。你知道吗

相关问题 更多 >

    热门问题