全角と半角が混在していているデータをきれいにしたいとき、今回紹介する方法が役に立ちます。
本記事ではpythonで全角と半角を変換する方法を紹介します。
pythonで全角と半角を変換する4つの方法
pyhtonで全角と半角を変換する方法を4つ紹介します。
- 英数字を全角・半角に変換: str.translate()
- unicode正規化で全角・半角を変換: unicodedata.normalize()
- 日本語の半角・全角文字を変換する: mojimoji
- 全角ひらがなを半角カタカナに変換可能: jaconv
本記事に記載しているコードは全てグーグルコラボラトリーで記述・動作確認をしています。
英数字を全角・半角に変換: str.translate()
str.translate()は英数字を半角全角に変換できる関数です。
標準モジュールのため、インストール等の動作を必要としません。
始めにstr.maketrans()で変換テーブルを作成します。
今回は全角を半角に変換してみます。
テーブルはstr.maketrans(変換したい文字, 変換後の文字)で作成します。
text = str.maketrans('INFOMA','infoma')
使用方法は、変換したい文字.translate(変換テーブル)です。
'INFOMA'.translate(text)
出力:
‘infoma’
unicode正規化で全角・半角を変換: unicodedata.normalize()
unicodedata.normalize()はunicode正規化を行う関数です。
unicode正規化とは全角・半角や1と①を同じものとして扱うようにすることです。
unicodedata.normalize(正規形, 変換したい文字)で使用します。
使用するにはunicodedataのインポートが必要です。
import unicodedata
使用するときは初めに正規化方法を指定する必要があります。正規化方法は、’NFC’、’NFKC’、’NFD’、’NFKD’の4つです。
text_1 = 'アイウエオアイウエオ①②1212abab'
print(unicodedata.normalize('NFKC', text_1))
出力:
アイウエオアイウエオ121212abab
カタカナは全角に、英数字は半角に変換されました。
日本語の半角・全角文字を変換する: mojimoji
mojimojiは日本語の半角・全角文字を変換できる外部ライブラリです。
グーグルコラボラトリーにはインストールされていないライブラリですので、下のコードを記述してインストールしてください。
pip install mojimoji
はじめにmojimojiをインポートします。
import mojimoji
半角を全角に変換したい場合はmojimoji.han_to_zen()、全角を半角に変換したい場合はmojimoji.han_to_zen()で変換可能です。
text_2 = 'アイウエオアイウエオ1212abab'
print(mojimoji.han_to_zen(text_2))
print(mojimoji.zen_to_han(text_2))
出力:
アイウエオアイウエオ1212abab アイウエオアイウエオ1212abab
全角ひらがなを半角カタカナに変換可能: jaconv
jaconv (Japanese Converter) はひらがな・カタカナ・全角・半角の文字種変換を高速に行うライブラリです。
全角・半角の変換だけでなく、全角ひらがなを半角カタカナに変換することも可能です。
グーグルコラボラトリーにはjaconvがインストールされていないので、インストールが必要です。
pip install jaconv
import jaconv
text_3 = 'アイウエオアイウエオあいうえお'
print(jaconv.h2z(text_3)) #半角を全角に変換
print(jaconv.kata2hira(text_3)) #カタカナをひらがなに変換
print(jaconv.hira2hkata(text_3)) #ひらがなを半角カタカナに変換
出力:
アイウエオアイウエオあいうえお
あいうえおアイウエオあいうえお
アイウエオアイウエオアイウエオ
まとめ
今回はpythonで全角半角変換する方法について紹介しました。
jaconvはひらがなを半角カタカナに変換できたりもするのでオススメです。
この記事を読んでpythonを勉強してみたいと思った人は次の記事も読んでください。
pythonを独学する方法について紹介しています。
コメント