2010年1月9日土曜日

withステートメント

Python2.5からwithステートメントが使えるようになりました。ただし、2.5では機能を有効化する必要があります。

Pythonリファレンスマニュアル

注意: Python 2.5 では、with 文は with_statement 機能が有効に された場合にだけ許可されます。これは Python 2.6 では常に有効になります。__future__ インポート文が この機能を有効にするために利用できます:

from __future__ import with_statement

使い方は簡単。

import os

DIR = os.path.join(“C:\Temp”)

def main(s)
    os.chdir(DIR)
    with open(“hoge.txt”, ‘wb’) as f:
        f.write(s)

# withを使わない場合
#    f = open((“hoge.txt”, 'wb')
#    try:
#        f.write(s)
#    finally:
#        f.close()

if __name__ == "__main__":
    import sys
    args = sys.argv
    if len(args) > 1:
        s = u" ".join(args[1:])
        main(s)

withステートメントは便利ですが、Python2.6のurllib.urlopenなどの組込モジュールなど対応していないものもあります。

0 件のコメント:

コメントを投稿