私は実行可能ファイルを起動するために、ユーザによって与えられた引数を使用してPythonスクリプトを作成しています:subprocess.Popenオプションの引数
問題は、これらのパラメータのいくつかは、実行のためにしている場合、オプションであるということですparser = argparse.ArgumentParser()
parser.add_argument('-c', '--stringC', dest="stringC", help="stringC", type=str)
parser.add_argument('-f', '--stringF', dest="stringF", help="stringF", type=str)
parser.add_argument('-o', '--stringO', dest="stringO", help="stringO", type=str)
parser.add_argument('-d', '--stringD', dest="stringD", help="stringD", type=str)
parser.add_argument('-s', '--stringS', dest="stringS", help="stringS", type=str)
args = parser.parse_args()
command = 'executable-location'
statement = [command, '-c', stringC, '-f', stringF, '-o', stringO, '-d', stringD, '-s', stringS]
p = subprocess.Popen(statement)
提供されていない場合、プログラムは独自のデフォルト値を使用します。だから、私は時々デフォルト値を使いたいのに、すべてのパラメータが使われている。
理想的には、私は実行可能ファイルに解析された引数を与えたいだけです。私は
statement = [command, args]
p = subprocess.Popen(statement2)
と
p = subprocess.Popen(args)
を試してみましたが、それは私に次のエラーを与える:
TypeError: 'Namespace' object is not iterable
がうまくいけば、誰かがこれで私を助けることができます。前もって感謝します。
ありがとうございました。プログラムのデフォルト値が変更されるたびにスクリプトを更新する必要がないので、2番目のオプションを使用することにしました。 – Aelion