日本語処理 |
Pythonは、バージョン1.6からUnicode文字列を扱えるようになり、多言語処理も一通り行えるようになっています。標準の正規表現モジュールなども、これに合わせる形で開発が進んできました。
Pythonでは、Unicodeオブジェクトと、バイト列で表現された文字列との間の変換をCodecsと呼ばれるモジュールを使って行います。EUC-JP、シフトJIS、UTF-8などで書かれた日本語文字列をUnicodeオブジェクトに変換するには、そのためのCodecsモジュールが必要なのですが、Python 2.3までは、この日本語用CodecsはPythonの標準ライブラリに含まれていませんでした。
この問題を解決するために、日本Pythonユーザ会(http://www.python.jp/Zope/)において、梶山民人氏が開発した日本語Codecsが配布されています。入手は、次のURLから行うといいでしょう。
http://www.python.jp/Zope/JapaneseCodecs
JapaneseCodecsは、Python標準のdistutilsというモジュールを使って構成されており、非常に簡単にインストールできます。しかし、やはりオリジナルのPythonに標準で含まれているものではないので、レンタルサーバーなどでPythonを使いたい場合などに、勝手に拡張モジュールをインストールできないなどの制約にひっかかり、うまくいかない場合もありました。
Python 2.4では、Hye-Shik Chang氏が作成した、日中韓国語用Codecs「CJKCodecs」が標準で組み込まれています。CJKCodecsは、cp932、euc-jis-2004、euc-jp、euc-jisx0213、iso-2022-jp、iso-2022-jp-1、iso-2022-jp-2、iso-2022-jp-3、iso-2022-jp-ext、iso-2022-jp-2004、shift-jis、shift-jisx0213、shift-jis-2004といったエンコーディングをサポートしており、ほぼ必要な機能はそろっています。これで一般的な日本語文字列の処理についてはだいぶ進展しました。
しかしながら、Codecsはバイト列とUnicode文字列間の相互変換を行うだけで、エンコーディングの推定などの機能は提供されていません。これらの機能が必要な場合は、やはり非標準のモジュールを利用することになります。これらの機能を持ったモジュールとしては、石本敦夫氏が開発・配布しているpykfなどを利用するといいでしょう。配布元URLは、次のとおりです。
http://www.gembook.jp/tsum/page.pys?wiki=PyKf
その是非はともかく、Pythonでは、今後文字列はUnicode化されていく傾向があるので、いまのうちにUTF-8でソースを記述しておくなどの準備をしておいたほうが安全かもしれません。
そのほかの変更点 |
Python 2.4では、ここまで挙げた以外にも多くの変更、修正、改善点などがあり、すべてPythonの標準ドキュメントとしてまとめられ、公開されています。次のURLで参照できますので、ぜひ閲覧してみてください。
http://docs.python.org/whatsnew/whatsnew24.html
終わりに |
駆け足になりましたが、Python 2.4の新機能のうち、興味深いものをピックアップして紹介してきました。Pythonは、欧米では人気のある言語としての地位を確立しており、GoogleやYahoo!のシステムの一部がPythonで書かれているなど、大規模システムでも積極的に利用されています。
最近では日本国内での注目も高まってきているようで、中でもPythonで開発されているWebアプリケーションサーバーおよびコンテンツ管理システムのZope(http://www.zope.org/)を中心として、Zope上で動作するblogツールCOREBlog(http://www.coreblog.org)やコンテンツ管理フレームワークであるPlone(http://www.plone.jp/)などの利用者も増えてきています。
また、JavaVM上で動作し、Javaで書かれたクラスなどとシームレスに連携できるJython(http://www.jython.org/)や、Microsoft .NET Framekwork上で動作し、CLIにコンパイルされるIronPython(http://ironpython.com/)も注目されています。
Pythonは、プログラム開発者のほとんどのニーズを満たす優秀な言語の1つですが、現状に甘んじることなく、さらに良いものを目指して開発が常に進行しています。この記事を通して、Pythonに触れてくれる方が1人でも増えれば、筆者としてうれしい限りです。
最新号:UNIX USER 2月号の内容
第1特集
第2特集
[特別企画] |
Copyright(c)2010 SOFTBANK Creative Inc. All rights reserved.