给定一个文本文件(或 unicode 字符串),检测 ASCII 编码之外的字符的好方法是什么?我可以轻松地将每个字符迭代传递给ord()
,但我想知道是否有更有效、更优雅或更惯用的方法来做到这一点。
这里的最终目标是编译数据中无法编码为 ascii 的字符列表。
如果重要的话,我的语料库的大小约为 500MB / 1200 个文本文件。在 Win7(64 位)上运行(预编译的普通)Python 3.3.1。
这里的最终目标是编译数据中的字符列表
无法编码为 ascii。
我能想到的最有效的方法是使用re.sub() http://docs.python.org/2/library/re.html#re.sub删除任何有效的 ASCII 字符,这应该会留下一个包含所有非 ASCII 字符的字符串。
这只会删除可打印的字符......
>>> import re
>>> print re.sub('[ -~]', '', u'£100 is worth more than €100')
£€
...或者如果您想包含不可打印的字符,请使用此...
>>> print re.sub('[\x00-\x7f]', '', u'£100 is worth more than €100')
£€
要消除欺骗,只需创建一个set()
返回的字符串...
>>> print set(re.sub('[\x00-\x7f]', '', u'£€£€'))
set([u'\xa3', u'\u20ac'])
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)