前述したように、コマンド化するのは前回のURLエンコーディング処理です。前回のシェルスクリプトから、URLエンコーディング処理のPythonプログラムを取り出すと、次の1行になります。
1 |
python3 -c "import sys, urllib.parse; print (urllib.parse.quote(sys.stdin.read().rstrip()));" |
これを複数行のPyhonのスクリプトに書き換えます。
1 2 3 4 |
#!/usr/bin/env python3 import sys, urllib.parse print (urllib.parse.quote(sys.stdin.read().rstrip())) |
このスクリプトの内容を簡単に説明しましょう。1行目は、シェルスクリプトと同じで「シェバン」になります。「#!/usr/bin/env コマンド名」のように記述すると、「env」コマンドが、環境変数「PATH」に設定されているディレクトリの中から、指定したコマンド名に一致する実行ファイルを探して実行します。
なぜ、このような記述を用いるかといえば、OS環境によってPythonのインタープリタを格納している場所が異なるからです。「/bin」ディレクトリだったり、「/usr/bin」ディレクトリだったりします。このようなシェバンを指定すれば、OS環境ごとにシェバンを書き換えることなく、Pythonのインタープリタを実行できます。