スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
【--/--/-- --:--】 | スポンサー広告 | page top↑
MacでクリップボードをPythonから操作する
Pythonで書いたプログラムの中から、クリップボードを操作できると便利だなと思い、調べてみるとMacにはコマンドラインのプログラムでクリップボードを操作できるものがあるということが判明。この小さな機能を組み合わせて仕事を達成するというUnix的発想がいまも継承されているところが、Macが死なずに生き残っている理由ですかね。(まあ、そうなったのは最近だという話もありますが・・・)
まあとにかく、Pythonからこれらのコマンドを、標準入出力を介して呼び出す関数を書けばOK。ちなみに、Macではクリップボードではなく、ペーストボード(paste bord)と呼ぶようです。


import subprocess

def getpb_data():
p = subprocess.Popen(['pbpaste'], stdout=subprocess.PIPE)
return p.communicate()[0]

def setpb_data(data):
p = subprocess.Popen(['pbcopy'], stdin=subprocess.PIPE)
p.communicate(data)


コマンドラインのプログラムをサブプロセスで呼び出しているだけなので、データのやり取りは文字列で行われます。画像などのバイナリデータをコピーしてもデータは取得できません。
また、改行はなぜか昔のMacのようにCR(\r)が使われますので注意が必要です。
これを使えば、Excelの列をコピーして、Pythonのプログラムの中でリストに変更なってことができるわけです。
なんか、ちょっとハックな気分ですね。(たいしたことやってませんが・・・)

スポンサーサイト

テーマ:プログラミング - ジャンル:コンピュータ

【2010/12/11 19:32】 | Python | トラックバック(0) | コメント(0) | page top↑
| ホーム |
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。