回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我正在创建一个python脚本,它使用用户提供的参数来启动可执行文件:</p>
<pre><code>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)
</code></pre>
<p>问题是其中一些参数对于可执行文件是可选的,如果没有提供,程序将使用自己的默认值。所以目前所有的参数都被使用了,尽管我有时想使用默认值。在</p>
<p>理想情况下,我只想给可执行文件解析的参数。我试过了</p>
^{pr2}$
<p>以及</p>
<pre><code>p = subprocess.Popen(args)
</code></pre>
<p>但它给了我以下错误:</p>
<blockquote>
<p>TypeError: 'Namespace' object is not iterable</p>
</blockquote>
<p>希望有人能帮我。提前谢谢。在</p>