2007-06-01から1ヶ月間の記事一覧

プリンタにテキストを出力する

# -*- coding: cp932 -*- import win32ui import win32print import win32con text = 'テスト文字列' hdc = win32ui.CreateDC() printer = win32print.GetDefaultPrinter() hdc.CreatePrinterDC(printer) hdc.StartDoc("test document") hdc.StartPage() hdc…

16進文字列をバイト文字列に/バイト文字列を16進文字列にする

「'%02x'%x」とか「int(x,16)」とかを使って自前関数で頑張るよりも、hexコーデックを使う方が便利です。 # -*- coding: cp932 -*- ## hex → cp932 print '8e8482cc96bc914f82cd8b67936382c582b7'.decode('hex') ## cp932 → hex print 'バイト文字列'.encode…

リストの要素をランダムに並べ替える

random.shuffleを使えばリストの内容を直接ランダムに並べ替えることができます。 from random import Random r = Random() items = range(10) r.shuffle(items) print items

抽選でn個選ぶ

リストから重複がないようにn個選び出したい場合、random.sampleを使います。 ここでは1億人の中から12人(の番号)を選んでいます。 from random import Random r = Random() x = r.sample(xrange(100000000), 12) print x さすがに1億個の要素を持つリスト…

サイコロを作る

from random import Random r = Random() ## A案:1から6までの間の整数を返す x = r.randint(1, 6) ## ※randrangeを使う場合 ## x = r.randrange(1, 7) ## B案:リストの中から1つ選んで返す face = [1, 2, 3, 4, 5, 6] x = r.choice(face)

プロセスを起動して標準入出力でデータをやり取りする

from subprocess import Popen, PIPE p = Popen([cmd,arg1,...], stdin=PIPE, stdout=PIPE) p.stdin.write(snd) rcv = p.stdout.read()