読者です 読者をやめる 読者になる 読者になる

水面下の夢

競プロやイラストに興味があります.メインブログがここ.ソシャゲの話はこっち(http://ameblo.jp/0n0-yumechi/).ブログアイコンはYaQ(@8_9_00)さんから.

プログラミング雑記 #3(2016/02/02) - PythonからShellコマンドを呼ぶ

本当はこんなものを書いている場合ではないんだけれども,息抜きがてらメモを残しておく.


今日はPythonの話をする.





Pythonからシェルコマンドを呼び出す.


目的としては,画像の変換コマンドを何回も呼び出していたので(png->epsに変換していた),それを楽にするためですかね.


結論としては,subprocessをインポートしてcallなどを呼び出すことで実現できました.


以下を参考にした.

17.5. subprocess — サブプロセス管理 — Python 3.5.1 ドキュメント


Python Tips:ターミナルのコマンドを利用したい - Life with Python



というわけで,subprocess.check_output(command, shell=True)みたいな形で呼び出せば良いことがわかりました.


加えてファイルが見つからない時に例外で以上終了してしまうので,try-except文を使って例外が発生した時はstacktraceを出力してみました.


参考にしたのはここ


stackoverflow.com


tracebackをimportして,例外が発生した時にtraceback.print_exc()を呼べば良いみたいですね.



というわけで,以下の手順を踏んで完成したのが以下のスクリプトです.また改造(改悪?)するかもしれませんが,一応貼っておきます.


convertコマンドは他OSで動くかはわかりませんが,私の環境はとりあえずMac OSなので,Macのひとは動くんじゃないかな…(convertコマンドってデフォルトで入ってたっけ… ッて思ったら,ImageMagick導入してないとダメみたい,ない人はインストールしてください><)


同じフォルダ内で使えば動きますが,ファイル名のマッピングが直打ちなので逐一変更してください….(本当は改良したい)


Change PNG to EPS (need ImageMagick, operation tes ...

以上です….