2009年 06月 24日
pywin32(python for windows extensions)

INTRODUCTION::python言語について


pythonは、Guido van Rossumによって1990年より開発が始まったインタープリター型の汎用プログラミング言語です。pythonは開発元であるZope CorporationのPython Labsの意向により、仕様及びライブラリに関して詳細な文章化がされており、プログラミングが始めての方にはうってつけの言語です。
日本においては、日本Pythonユーザ会(PyJUG)という団体がpythonの普及・啓発活動を行っています。また、pythonインタープリタはこの団体のホームページからダウンロードができます。最新版はpython3.01です。

python言語のインストール


上記団体の案内に従いWindowsXP OSにpython3.01をインストールします。

pywin32のインストール


インストールしたpythonインタープリタはそのままでも柔軟な表現能力を保有していますが、pywin32というWindowsOSに特化した拡張が提供されています。より便利に使う為、こちらの拡張もリンク先よりダウンロードし、同様にインストールします。

EXAMPLE::win32clipboardを用いたクリップボードデータの取り扱い


インストールしたpywin32拡張を用いて簡単な例を試してみましょう。
win32clipboardモジュールはWindowsOSの機能として取得したクリップボードデータへアクセスを可能にしてくれます。
実際にクリップボードデータの取得及び変更を行ってみましょう。
まず、

import win32clipboard

class Singleton(object):
_singletons = {}
def __new__(clss, *args, **kwds):
if clss not in clss._singletons:
clss._singletons[clss] = object.__new__(clss)
return clss._singletons[clss]

class Clipboard(Singleton):
def __opClipboard(self,op):
result = ""
try:
win32clipboard.OpenClipboard()
result = op()
finally:
win32clipboard.CloseClipboard()
return result

def empty(self):
win32clipboard.EmptyClipboard()
def get(self):
return self.__opClipboard(win32clipboard.GetClipboardData)
def set(self,text=''):
op = lambda: (lambda x: win32clipboard.SetClipboardText(text))( self.empty() )
self.__opClipboard(op)

というクラスを記述したとします。このクラスを用いてクリップデータの取り扱いを行うこととします。
では、pythonインタープリタに上記クラス表現を読み込ませ、実際に動かしてみます。

>>> clipb = Clipboard()
>>> clipb.get()
'変更前のクリップボード内のデータです。'
>>> clipb.set('こんにちは形式機能的な世界')
>>> clipb.get()
'こんにちは形式機能的な世界'

クリップボードの内容が変更されましたね。pywin32には他にも便利なモジュールが含まれているので、他のモジュールについても調べてみると良いかもしれません。
[PR]

by brafsan | 2009-06-24 01:18


<< 勝間氏新刊「まねる力」