跳转到主要内容

Python访问ICU文本校对

项目描述

此包提供对国际Unicode组件(ICU)的Python接口。

变更历史

1.0.2 (2006-10-16)

修复了设置文件的问题。

1.0.1 (2006-10-16)

向setup.py中添加了缺失的导入。

1.0 (2006-10-16)

初始版本。

安装

zope.ucol通过setup.py以常规方式安装。

您必须安装ICU。如果ICU未安装在系统上用于包含文件和库的常规位置,您可以在构建扩展时向setup.py提供命令行选项,如下所示

python2.4 setup.py build_ext \
  -I/home/jim/p/z4i/jim-icu/var/opt/icu/include \
  -L/home/jim/p/z4i/jim-icu/var/opt/icu/lib \
  -R/home/jim/p/z4i/jim-icu/var/opt/icu/lib

python2.4 setup.py install

请注意,如果库位于不寻常的位置,您可能需要使用-R选项指定其位置,这样就不必在运行时指定。

详细文档

基于区域的ICU文本校对

zope.ucol包为Unicode Components for Unicode(ICU)库的u_col C API提供了一个最小的Python包装器。它提供基于区域的文本校对。

要执行校对,您需要为您的区域创建一个校对器键工厂。在下面的示例中,我们将使用特殊的“root”区域

>>> import zope.ucol
>>> collator = zope.ucol.Collator("root")

校对器有一个键方法,可以从Unicode字符串创建校对键。该方法可以作为键参数传递给list.sort或内置的sorted函数。

>>> sorted([u'Sam', u'sally', u'Abe', u'alice', u'Terry', u'tim',
...        u'\U00023119', u'\u62d5'], key=collator.key)
[u'Abe', u'alice', u'sally', u'Sam', u'Terry', u'tim',
 u'\u62d5', u'\U00023119']

有一个用于比较两个Unicode字符串的cmp方法,也可以在排序时使用

>>> sorted([u'Sam', u'sally', u'Abe', u'alice', u'Terry', u'tim',
...        u'\U00023119', u'\u62d5'], collator.cmp)
[u'Abe', u'alice', u'sally', u'Sam', u'Terry', u'tim',
 u'\u62d5', u'\U00023119']

请注意,通常将键方法传递给排序函数,而不是cmp方法,这几乎总是更有效。在字符串长且数量少,并且它们倾向于在开头处不同的情况下,cmp方法更有效。这是因为当可以根据分析原始字符串的一小部分来确定顺序时,计算整个键可能比比较要昂贵得多。

校对器属性

您可以要求合并器提供它的区域设置

>>> collator.locale
'root'

并可以找出是否使用了默认的合并信息

>>> collator.used_default_information
0
>>> collator = zope.ucol.Collator("eek")
>>> collator.used_default_information
1

下载

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

zope.ucol-1.0.2.tar.gz (15.1 kB 查看哈希值)

上传时间

支持者

AWSAWS云计算和安全赞助商DatadogDatadog监控FastlyFastlyCDNGoogleGoogle下载分析MicrosoftMicrosoftPSF赞助商PingdomPingdom监控SentrySentry错误日志StatusPageStatusPage状态页面