用python中的参数调用bash脚本

用python中的参数调用bash脚本,python,python-3.x,bash,Python,Python 3.x,Bash,我试图通过python脚本执行以下内容。但是我犯了一个错误未知选项:-a测试-B25-C18--D25 23 script_args = '-a test -b 25 -c 18 --d 25 23' subprocess.Popen(['/home/pi/bash/bash_script.sh', script_args]) 我可以复制未知选项行并执行我的脚本,脚本运行时没有任何错误,我得到了所需的输出 /home/pi/bash/bash_script.sh -a test -b 25

我试图通过python脚本执行以下内容。但是我犯了一个错误<代码>未知选项:-a测试-B25-C18--D25 23

script_args = '-a test -b 25 -c 18 --d 25 23'
subprocess.Popen(['/home/pi/bash/bash_script.sh', script_args])
我可以复制未知选项行并执行我的脚本,脚本运行时没有任何错误,我得到了所需的输出

 /home/pi/bash/bash_script.sh -a test -b 25 -c 18 --d 25 23

通过python脚本,我做了什么不正确的事情?

您正在传递一个由所有这些字符组成的参数

script_args = ['-a', 'test', ..., '23']
subprocess.Popen(['/home/pi/bash/bash_script.sh'] + script_args)

您正在传递一个由所有这些字符组成的参数

script_args = ['-a', 'test', ..., '23']
subprocess.Popen(['/home/pi/bash/bash_script.sh'] + script_args)

您还可以使用
*
运算符将参数解压到列表中,与
+
不同,该运算符支持所有iterable类型
subprocess.run(['/home/pi/bash/bash\u script.sh',*script\u args])
您还可以使用
*
运算符将参数解压到列表中,该运算符与
+
不同,它支持所有iterable类型
subprocess.run(['/home/pi/bash/bash\u script.sh',*script\u args])