私は仕事でよく行う作業はシェルスクリプトにしています。シェルスクリプトにすることで次のような利点があると思います。
- 作業が自動化されることで作業時間の大幅な削減ができる。
- ケアレスミスによる手戻りを防止できる。
- 類似した作業が増えたときにもスクリプトの追加で簡単に対応できる。
シェルスクリプトでも良いのですが、もっと効率的にスクリプトが書けて、スクリプト自体のデバッグがやりやすくしたいなぁと思っていたところ、友人からPythonを勧められたので、勉強してみました。
Pythonについての第一印象
PythonはSwiftに似ていると思います。言語機能やライブラリも豊富です。Swiftに似ているのは、Swiftが真似たのだと思いますが。Swiftを知っている人なら、直ぐにPythonは使えるようになると思います。逆も同様で、Pythonを知っている人ならSwiftも直ぐに使えるようになると思います。機能が似ているのに、予約語が違うところは間違いやすいですが。
必要なモジュール
自動化したい作業は次のようなことです。
- ファイルコピーや名称変更などのファイル操作
- 定義ファイル(XMLやJSON)などに書かれている値の変更
- productbuild(インストーラビルドするツール)やcodesign(コードサイニングするツール)の実行
- 出来上がったインストーラを入れたディスクイメージの作成
これらをPythonで行うには、「os」「json」「xml.dom」「subprocess」モジュールを使えばできそうな感じです。Pythonはモジュールが豊富に用意されているので、大抵のことは用意されているモジュールの機能を使って記述できてしまうと思います。
今までシェルスクリプトだとハードコーディングしていたものも、コマンドラインツール用に設定ファイルやコマンドラインオプションで指定できるようにして、もっと使いやすくしようという気にさせてくれる言語です。