2024-05-16 13:57:41 发布
网友
给定一个文本文件(或unicode字符串),什么是检测ascii编码以外字符的好方法?我可以很容易地迭代将每个字符传递给ord(),但是我想知道是否有一种更有效、更优雅或更习惯的方法来完成这个任务。
ord()
这里的最终目标是编译数据中不能编码为ascii的字符列表。
如果重要的话,我的语料库大小大约是500MB/1200个文本文件。在Win7(64位)上运行(预编译的vanilla)Python 3.3.1。
The ultimate goal here is to compile a list of characters in the data that cannot encode to ascii.
我能想到的最有效的方法是使用^{}来去掉任何有效的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()。。。
set()
>>> print set(re.sub('[\x00-\x7f]', '', u'£€£€')) set([u'\xa3', u'\u20ac'])
我能想到的最有效的方法是使用^{} 来去掉任何有效的ASCII字符,这会给您留下一个包含所有非ASCII字符的字符串。
这只会去掉可打印的字符。。。
…或者如果要包含不可打印字符,请使用此。。。
要消除重复,只需创建返回字符串的
set()
。。。相关问题 更多 >
编程相关推荐