在UTF-8编码的行中使用Python的string.split()
我有一个用utf-8编码的文本文件,我想用split这个简单的方法把每一行分割成单词。代码大概是这样的:
import codecs
file = codecs.open(fileAddress, 'r', 'utf-8')
line = file.readline()
file.close()
line.split()
但是这样分割utf-8字符串的时候,和处理ascii文件时不一样。我希望像“hi i am here”这样的utf-8编码的行能变成一个单词列表,比如["hi", "i", "am", "here"],在处理ascii时用line.split()就很简单。
有没有什么简单的方法可以解决这个问题呢?
1 个回答
0
正如Martijn Pieters所指出的,你的代码应该可以正常工作,只要你的文件中用的是普通的空格作为分隔符。你预期的结果和实际结果的唯一区别是,得到的标记(tokens)是unicode类型,而不是str类型。
还有一些其他的unicode字符也用来表示空白,比如你可以查看这个链接http://en.wikipedia.org/wiki/Whitespace_character#Unicode,也许这就是导致问题的原因。如果是这样的话,即使是readline也可能会出现问题……