2.4への機能強化で広がるPythonの世界UNIX USER2005年2月号特別企画より転載(4/4 ページ)

» 2005年01月24日 16時00分 公開
[磯 蘭水,UNIX USER]
前のページへ 1|2|3|4       
日本語処理

 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月号表紙 最新号:UNIX USER 2月号の内容

第1特集
Thunderbirdを乗りこなす

第2特集
バーコード/QRコードで楽々整理

[特別企画]
・NetBSD/PowerPCで動く二足歩行ロボット
・手軽に使えるバグ管理システム「影舞」
・2.4への機能強化で広がるPythonの世界
・Vine Linux 3.1の要点


前のページへ 1|2|3|4       

Copyright(c)2010 SOFTBANK Creative Inc. All rights reserved.

注目のテーマ