📜  Unicodedata – Python中的Unicode数据库

📅  最后修改于: 2020-04-16 06:23:33             🧑  作者: Mango

Unicode字符数据库(UCD)由Unicode标准附件#44定义,该标准定义了所有unicode字符的字符属性。该模块提供对UCD的访问,并使用与Unicode字符数据库定义的符号和名称相同的符号和名称。
模块定义的函数:

  • unicodedata.lookup(name)
    此函数按名称查找字符。如果在数据库中找到具有给定名称的字符,则返回相应的字符,否则引发Keyerror。
    范例:
    import unicodedata
    print unicodedata.lookup('LEFT CURLY BRACKET')
    print unicodedata.lookup('RIGHT CURLY BRACKET')
    print unicodedata.lookup('ASTERISK')
    # 由于没有称为ASTER的符号而给出错误
    # print unicodedata.lookup('ASTER')

    输出:

    {
    }
    *

    unicodedata.name(chr [,默认])
    此函数以字符串形式返回分配给给定字符的名称。如果未定义名称,则函数返回默认值,否则,如果未提供名称,则会引发ValueError。范例:

    import unicodedata
    print unicodedata.name(u'/')
    print unicodedata.name(u'|')
    print unicodedata.name(u':')

    输出:

    SOLIDUS
    VERTICAL LINE
    COLON

    unicodedata.decimal(chr [,default])
    此函数以整数形式返回分配给给定字符的十进制值。如果未定义任何值,则该函数将返回默认值;否则,如果未提供值,则会引发ValueError。
    范例:

    import unicodedata
    print unicodedata.decimal(u'9')
    print unicodedata.decimal(u'a')

    输出:

    9
    Traceback (most recent call last):
      File "7e736755dd176cd0169eeea6f5d32057.py", line 4, in
        print unicodedata.decimal(u'a')
    ValueError: not a decimal

    unicodedata.digit(chr [,默认])
    此函数以整数形式返回分配给给定字符的数字值。如果未定义任何值,则该函数将返回默认值;否则,如果未提供值,则会引发ValueError。
    范例:

    import unicodedata
    print unicodedata.decimal(u'9')
    print unicodedata.decimal(u'143')

    输出:

    9
    Traceback (most recent call last):
      File "ad47ae996380a777426cc1431ec4a8cd.py", line 4, in
        print unicodedata.decimal(u'143')
    TypeError: need a single Unicode character as parameter

    unicodedata.numeric(chr [,default])
    此函数以整数形式返回分配给给定字符的数值。如果未定义任何值,则该函数将返回默认值;否则,如果未提供值,则会引发ValueError。
    范例:

    import unicodedata
    print unicodedata.decimal(u'9')
    print unicodedata.decimal(u'143')

    输出:

    9
    Traceback (most recent call last):
      File "ad47ae996380a777426cc1431ec4a8cd.py", line 4, in
        print unicodedata.decimal(u'143')
    TypeError: need a single Unicode character as parameter

    unicodedata.category(chr)
    此函数以字符串形式返回分配给给定字符的常规类别。例如,对于字母返回“ L”,对于大写字母返回“ u”。
    范例:

    import unicodedata
    print unicodedata.category(u'A')
    print unicodedata.category(u'b')

    输出:

    Lu
    Ll

    unicodedata.bidirectional(chr)
    此函数以字符串形式返回分配给给定字符的双向类。例如,对于阿拉伯语,返回“ A”,对于数字,返回“ N”。如果未定义此值,则此函数将返回一个空字符串。
    范例:

    import unicodedata
    print unicodedata.bidirectional(u'\u0660')

    输出:

    AN

    unicodedata.normalize(form,unistr)
    此函数返回Unicode字符串unistr的普通形式form。格式的有效值为“ NFC”,“ NFKC”,“ NFD”和“ NFKD”。
    范例:

    from unicodedata import normalize
    print '%r' % normalize('NFD', u'\u00C7')
    print '%r' % normalize('NFC', u'C\u0327')
    print '%r' % normalize('NFKD', u'\u2460')

    输出:

    u'C\u0327'
    u'\xc7'
    u'1'