アルファベット文字列をフォネティックコードで表記するPythonモジュールをつくったよ:a2pcej
アカウントの追加業務とかで、パスワードをこちらで適当に生成してお知らせるときに、パスワード文字列のよみがなをつけて渡すということが、しばしばあるわけです。
たとえば、こんなやつ。
ユーザー名: hogehoge パスワード: WPzm60zh (ダブリュー(大文字)・ピー(大文字)・ゼット・エム・ロク・ゼロ・ゼット・エイチ)
大した数じゃなければ手打ちするのもいいんですが、一気にどかっと発行するとかなると手打ちするは厄介です。自動でやってしまいたいところです。
Google先生に尋ねると、
- フリガナつきパスワード生成ツール - Password Generator
- パスワードをカナに変換するツール|シラサヤ備忘館
- Excel2010 英数字にふりがな|ichiのおもちゃ箱
- パスワードの読み仮名を作るc2pコマンド | /var/log/azumakuniyuki
といったのが出てきます。パスワードの生成からやってしまってよければ、フリガナつきパスワード生成ツール - Password Generator は、大量生産できるのでよさ気ですが...
パスワードのよみがなの区切り文字や、大文字につける表記が自分のところで使っているフォーマットと合わなかった...
ということで、実はずい分前に手元で使える用には、ざっくりpythonスクリプトで作ってありました。
今回これを大改造して、
- 区切り文字を指定できる
- 大文字につける印を指定できる
- カタカナ表記だけではなく、英語圏用(?)にフォネティックコード表記できる
というものを作ってみました。いろんなところで使いまわしやすいように、PyPIに上げて、pipでインストールできるようにしました。 謎のネーミングセンスにより、a2pcejという名称にしました。一応、convert Alphabet to Phonetic Code in English and Japaneseの略。
使い方
以下Python3.5環境での出力例です。関数の戻り値はunicode文字列になっています。
兎にも角にもモジュールをインポート。
>>> from a2pcej import *
アルファベットの文字列にカタカナでよみがなをつける。 :conv_ak()
>>> conv_ak('examples') 'イー・エクス・エイ・エム・ピー・エル・イー・エス'
アルファベット大文字にはデフォルトで「(大文字)」と付く。
アルファベット以外(記号や数字)はデフォルトだとよみがな変換されない(その文字がそのままま出る)。
>>> conv_ak('Examples002') 'イー(大文字)・エクス・エイ・エム・ピー・エル・イー・エス・0・0・2'
区切り文字を変更するには、delimiter='文字列'
を引数に追加する。
アルファベット大文字につく文字列の変更をするには、 sign='文字列'
を引数に追加する。
空にすれば、区切りなし、大文字表記なしになる。
>>> conv_ak('Examples003', delimiter='/', sign='(大)') 'イー(大)/エクス/エイ/エム/ピー/エル/イー/エス/0/0/3' >>> conv_ak('Examples003', delimiter='', sign='') 'イーエクスエイエムピーエルイーエス00'
数字にもよみがなを付けたいときは、num=True
を引数に加える。
>>> conv_ak('Examples004', num=True) 'イー(大文字)・エクス・エイ・エム・ピー・エル・イー・エス・ゼロ・ゼロ・ヨン'
アルファベットの文字列に英単語のフォネティックコードをつける。 :conv_al()
オプションは、 conv_ak()
と同じなので、出力例だけ。
区切り文字、大文字につく文字列のデフォルトを英語圏っぽいのにしてある。
>>> conv_al('examples') 'Echo-Xray-Alfa-Mike-Papa-Lima-Echo-Sierra' >>> conv_al('Examples002') 'Echo(CAPS)-Xray-Alfa-Mike-Papa-Lima-Echo-Sierra-0-0-2' >>> conv_al('Examples003', delimiter=', ', sign='(CAPITAL)') 'Echo(CAPITAL), Xray, Alfa, Mike, Papa, Lima, Echo, Sierra, 0, 0, 3,' >>> conv_al('Examples004', num=True) 'Echo(CAPS)-Xray-Alfa-Mike-Papa-Lima-Echo-Sierra-zero-zero-four'
ソース
PyPI
雑感
python2での文字コードのこととか、パッケージングする方法とか、pandocってなんか便利なツールがあるとか、いろいろお勉強になりましたです。久しぶりに英文も書いたらスペルミスと謎の構文の嵐です。