名もなき未知

エンジニアリングとか、日常とかそういうのをまとめる場所。アクセス解析のためGAを利用、Googleに情報を送信しています。商品紹介のためAmazonアフィリエイトを利用、Amazonに情報を送信しています。記事に関しては私が書いていない引用文を除いて自由にご利用ください。

プログラミング雑記 #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 ...

以上です….