web-dev-qa-db-ja.com

Pythonを使用して、コマンドラインユーティリティをラップする効果的な方法は何ですか?

Pythonコマンドラインユーティリティを「ラップ」するアプリケーションを作成し、変更することを選択したパラメーターを除くすべてのパラメーターをそのまま渡します。

Python)でこれを行う簡単な方法があると思いますが、これを本当に困難にする方法はいくつもあります。

これを行う「正しい」方法はありますか?重要な提案。誰かにコードを書いてもらいたくないので、効果的なアプローチについてコメントしてください。ありがとう!

Python 3を使用する

2
Duke Dougal

Sys.argvからパラメーターを読み取り、それらをsubprocess.call()(またはサブプロセスの他の関数の1つ)に渡します。 subprocess.call()は、実行するコマンドとそのパラメーターを指定するリストを取得します。これは、sys.argvに適しています。

パラメータを確認、処理、またはフィルタリングする必要がない場合は、これと同じくらい簡単にすることができます。

#!/usr/bin/env python3
import subprocess
import sys
subprocess.call(sys.argv[1:])

たとえば、 wrap.py ls -l、それはls -l

3
Roel Schroeven