Python
 Computer >> コンピューター >  >> プログラミング >> Python

PythonのunicodedataモジュールでUnicodeデータベースを操作する方法

Pythonのunicodedataモジュールを使用すると、Unicode文字データベースにアクセスし、すべてのUnicode文字の情報を取得できます。このデータベースには、各文字のプロパティ(属性情報)が登録されています。

このモジュールを利用するには、まずコード内でunicodedataモジュールをインポートする必要があります。

import unicodedata

unicodedataモジュールの主なメソッド

ここでは、unicodedataモジュールでよく使われるメソッドを紹介します。

unicodedata.lookup(name)

文字名を指定して、該当する文字を検索します。有効な名前が渡された場合は対応する文字を返し、無効な名前の場合はKeyErrorが発生します。

unicodedata.name(chr[, default])

指定した文字の正式名称(Unicode名)を文字列として返します。default値が指定されていて、その文字がデータベースに存在しない場合はdefaultを返し、defaultが指定されていない場合はValueErrorが発生します。

unicodedata.digit(chr[, default])

指定した文字に対応する整数値を返します。default値が指定されていて、その文字がデータベースに存在しない、あるいは正しい形式でない場合はdefaultを返し、それ以外の場合はValueErrorが発生します。

unicodedata.category(chr)

指定した文字に割り当てられた一般カテゴリを返します。たとえば、大文字アルファベットには「Lu」、数字には「Nd」、開き括弧には「Ps」(Punctuation Start:開始句読点)といったカテゴリが割り当てられています。

unicodedata.mirrored(chr)

指定した文字がミラー(鏡像)属性を持つかどうかを判定します。「(」と「)」のように、左右反転の関係にある文字にはミラー属性が設定されています。ミラー属性を持つ場合は1、持たない場合は0を返します。

サンプルコード

import unicodedata as ud
print(ud.lookup('ASTERISK'))
print(ud.lookup('Latin Capital letter G'))

# 文字からUnicode名を取得
print(ud.name(u'x'))
print(ud.name(u'°'))

# Unicode文字を10進数・数値に変換
print(ud.decimal(u'6'))
print(ud.numeric(u'9'))

# Unicode文字のカテゴリを取得
print(ud.category(u'A'))
print(ud.category(u'9'))
print(ud.category(u'['))  # Punctuation Start(開始句読点)

# ミラー属性を持つかどうかを判定
print(ud.mirrored(u'A'))
print(ud.mirrored(u'<'))

実行結果

*
G
LATIN SMALL LETTER X
DEGREE SIGN
6
9.0
Lu
Nd
Ps
0
1

実行結果からわかるように、lookup()は文字名から記号や文字を取得でき、name()は逆に文字から正式名称を取得できます。また、decimal()numeric()は数字文字を数値に変換します(numeric()は浮動小数点数として返される点に注意してください)。さらに、category()によるカテゴリ判定や、mirrored()による鏡像属性の確認も簡単に行えます。これらのメソッドを活用することで、多言語処理やテキスト解析において文字の性質を柔軟に判別できるようになります。

  1. Pythonで整数を文字に変換する方法|chr()関数の使い方を解説

    Pythonのchr()関数とはPythonでは、組み込み関数 chr() を使うことで、整数を対応するUnicode文字に変換できます。引数として指定できる整数の範囲は、0から0x10FFFF(10進数で1,114,111)までです。この範囲はUnicodeで定義されているすべてのコードポイントをカバーしています。chr()関数の基本的な使い方chr() 関数は、引数に整数(コードポイント)を渡すと、その整数に対応する1文字の文字列を返します。>>> a = 100 >>> chr(a) d >>> chr(300) Ĭ >>

  2. Pythonで整数をUnicode文字に変換する方法【chr()関数の使い方を解説】

    Pythonで整数をUnicode文字に変換するには?Pythonでは、標準ライブラリに組み込まれているchr()関数を使うことで、整数を対応するUnicode文字に簡単に変換できます。chr()関数は、0から0x10FFFF(10進数で1,114,111)までの範囲にある整数を受け取り、そのコードポイントに対応するUnicode文字を返します。基本的な使い方chr()関数の引数に整数(Unicodeコードポイント)を渡すと、該当する文字が文字列として返されます。以下は具体的な使用例です。>>> chr(36) $ >>> chr(97) a >>