0

より正確に言うと、私がやろうとしていることは次のとおりです。

  • 私のpythonスクリプトの引数として完全なシェルコマンドを読んでください:python myPythonScript.py ls -Fl
  • 必要に応じて、Pythonスクリプト内でそのコマンドを呼び出します(いくつかのフォルダーでいくつかのループを作成し、コマンドなどを適用します...)

私はこれを試しました:

import subprocess
from optparse import OptionParser
from subprocess import call
def execCommand(cmd):
        call(cmd)


if __name__ == '__main__':
        parser = OptionParser()
        (options,args) = parser.parse_args()
        print args
        execCommand(args)

その結果、 python を実行できるmyPythonScript.py ls ようになりましたが、オプションを追加する方法がわかりません。を使用できることparser.add_optionはわかっていますが、特定のオプションのみを使用可能にしたくないため、すべてのオプションで機能させる方法がわかりませんが、実行中のコマンドに応じてすべての可能なオプションが可能です。のようなものを使用できますparser.add_option('-*') か? 次に、オプションを解析し、オプションを指定してコマンドを呼び出すにはどうすればよいですか?

編集

引数として渡されたすべてのタイプのコマンドを解析するプログラムが必要です: python myScript.py ls -Fl、、python myScript.py git pullなどpython myScript rm -rf *...

4

2 に答える 2

1

OptionParser独自のプログラムで引数を処理したい場合に便利です。文字列引数をブール値、整数、リスト項目などに変換するのに役立ちます。あなたの場合、呼び出しているプログラムに引数を渡したいだけなので、気にしないでOptionParserください。で与えられた引数を渡すだけsys.argvです。

subprocess.call(sys.argv[1:])
于 2016-12-20T09:56:58.460 に答える