我有一个带有多个参数的 Python 脚本。我想用不同的参数值运行这个脚本。我编写了以下代码进行试运行,但出现错误:
L1=[9,10,11]
import subprocess
for L in L1:
subprocess.call(['python', r'C:\Users\priyajit\Downloads\lattice_qm_mc.py', 'e', '-l L', '-p'])
错误是:
usage: lattice_qm_mc.py [-h] [-a A] [-cfg CFG] [-cor COR] [-d D] [-e E] [-i]
[-l L] [-mu MU] [-o] [-p] [-r R] [-t T] [-v {s,c,w}]
{e,m,w}
lattice_qm_mc.py: error: argument -l: invalid float value: ' L'
l
的默认值为10,采用浮点值。
您正在传递字符串“L”并且想要传递变量 L。尝试:
import subprocess
L1=[9,10,11]
for L in L1:
subprocess.call(['python', r'C:\Users\priyajit\Downloads\lattice_qm_mc.py', 'e', '-l', L, '-p'])
你试图错误地通过L。现在您正在传递字符串“L”而不是列表 L1 的值。
试试这个:
subprocess.call(['python', r'C:\Users\priyajit\Downloads\lattice_qm_mc.py', 'e', '-l', str(L), '-p'])
我们分离了 -l 参数并使用 str(L) 将列表中的实际值 L 从整数转换为字符串,因为 subprocess.call 需要字符串作为参数。