FC2ブログ
    2013
    11.30

    PythonでAppleScriptのコマンドを実行(appscript)

    最近、全然触ったことのないPythonをいじっています。全然分かんないけど(爆)
    他の人が作ったPythonのスクリプトを活用して
    自分用にアレンジしたAppleScriptを作るのが目的です。

    今回のお題:途中でキー入力を求めるPythonスクリプト


    今回使おうとしているPythonのスクリプトは、こんな感じで動作します。
    (1) Pythonのスクリプトを起動
    (2) 途中で「press any key」(準備ができたところで何らかのアクション)を求める
    (3) (2)のアクションの後で残りの処理をして終了

    普通のやり方だと、一連の操作を全部ターミナルでやるのがお約束。

    できればこれを全部ターミナルを出さずにやりたい
    起動するのはAppleScriptからdo shell scriptでできる。
    問題は(2)の何らかのアクションのところ。

    Pythonでダイアログを出したりキー入力をするには?
    GUI用のモジュールもいくつかあるようですが、敷居が高杉(汗)

    それこそ、Pythonのスクリプトの中で
    AppleScriptのアラートダイアログを呼び出せたらいいのに。。


    AppleScriptを実行するためのPythonモジュール


    PythonでAppleScriptを呼び出すモジュールがありました!
    py-appscript

    ただし、こんな但し書きが…
    Please note that appscript is no longer developed or supported, and its use is not recommended for new projects.

    つまり、もう開発終了しててサポートもないから新規に使うのはやめときな、ってことらしい。
    いやいや、使えるうちに使わせて下さい(笑)
    とはいえ、確かにある程度AppleScriptを実行できるんですが…
    ホームページの例を見て愕然!記法が独特すぎるorz

    あくまで「Pythonを書く感覚でAppleScriptの機能を呼び出せる」もので、
    AppleScriptを書く感覚でPythonにAppleScriptの機能を追加できる」ものではない、てことですね(汗)

    淡い夢は消えましたが、ターミナルを表示させないという目標に向けて、実装してみます。



    まずはAppleScriptでダイアログ出してみた

    tell current application
    activate
    display dialog "If you finished, press \"Finished\" button" buttons "Finished" default button "Finished"
    end tell

    実行すると、普通のダイアログが出てきます。

    AS_alert_dialog-1

    ちなみに返り値はbutton returned:"Finished"



    Pythonでもやってみた

    ターミナルでpip install appscriptと入力し、appscriptのモジュールをインストール。
    エラーが出ることもなくインストール完了。バージョンは1.0.1でした。

    ・Pythonのスクリプトの始めの方でappscriptのモジュールを使う事を宣言。
    from osax import OSAX

    ・以下を参考にしてAppleScriptでアラートダイアログを表示。
    Appscript & OSAX : Clark's Tech Blog

    #!/usr/local/bin/python

    from osax import OSAX

    sa = OSAX()
    sa.activate()
    asres = sa.display_alert("If you finished , press \"Finished\" button", buttons = "Finished", default_button="Finished")

    ファイルを保存(拡張子=.py)、そのファイルに実行権限を与えるために
    ターミナルでchmod 755 そのファイルなどとした後で
    python そのファイルで実行すると・・・ダイアログ出た! 何このアイコン?

    Python_alert_dialog-2


    ちなみに返り値はk.button_returned: u'Finished'
    ちょっと変ですが、今回は捨て値だし、アクションを返せるので良しとしましょう(^-^;)





    あとは使いたいPythonのスクリプトにこのコマンドを組み込むことで、目的を果たせます♪
    1行目は他のPythonのコードでも一緒。
    3行目のモジュール呼び出しはコードの先頭部分に。
    5行目はどこか邪魔にならないところで先に宣誓。
    残りの2行は問題のキー入力を求める部分にを入れました。
    (そのソースコードではraw_input("If you finished , press any key"))という部分)


    待っててね、Python。次の次の次の次くらいに勉強してあげるから(いつだよ


    追記:
    もしかして、pythonのcommandsモジュールとosascriptコマンドでもっと簡単にできる?
    なんでこーゆーことに早く気付かない。。。無知って悲しい(:_:)
    できるだけAppleScriptで書けると助かるし。。後で試してみます(^-^;)

    このエントリーをはてなブックマークに追加
    Comment:0  Trackback:0
    2013
    11.23

    ブログのタイトル替えました

    Category: その他
    ブログのタイトル変更。

    実はこれが3回目。

    認知もリンクもされてないから

    タイトル替えても無問題(笑)




    4回目はロシア語にでもしよっかな?笑

    Блог похотливых некоторых пользователей Mac
    (Это шутка, на самом деле разные.)

    とか、なんかカッコよさげですが

    翻訳禁止(笑)

    このエントリーをはてなブックマークに追加
    Comment:0  Trackback:0
    back-to-top