Pythonでパスワード生成&クリップボードへコピー wxPython編

前回のエントリで、パスワードを生成してクリップボードにコピーするプログラムを書きました。今回も同じ機能を持つプログラムを書きました。前回はWIN32APIをつかってクリップボードを操作しましたが、今回はクロスプラットフォームGUIライブラリであるwxWidgetsPythonばいんディングのwxPythonにあるwx.Clipboardクラスを使って操作しました。動作はwinXPで確認したけどmaclinuxでも多分動く。

#! /usr/local/bin/python2.6
# coding: utf-8
# wx.Clipboardクラスを使ったkeygenerate.pyのrewrite
#
# n文字のパスワードを作成する。
# 最後にプロンプトを出してクリップボードにデータをコピーする。

from sys import exit
from random import choice
from string import lowercase, uppercase, digits
import string
import wx

app = wx.PySimpleApp()

n = 10
lst = lowercase + uppercase + digits
pwd = "".join(choice(lst) for i in range(n))
print pwd

prompt = raw_input(u"copy to clipboard? [y/n]")

if prompt == "y":
    cboard = wx.Clipboard()
    if not cboard.Open():
        print "fail..."
        raw_input()
        sys.exit()
    cboard.SetData(wx.TextDataObject(pwd))
    cboard.Flush()
    cboard.Close()
    print "done"