python - 从另一个 Python 脚本调用一个 Python 脚本,参数存储在字符串中

标签 python subprocess

我正在尝试从另一个脚本调用Python脚本。我正在使用 subprocess 模块并这样调用它:

subprocess.call(["python","script.py","parameter_name parameter_value"], shell=False)

问题是,当我以这种方式调用它时,它对于单个参数来说效果很好。当我有多个参数时,我尝试以这种方式运行

subprocess.call(["python","script.py","parameter_one_name parameter_one_value", "parameter_two_name parameter_two_value"], shell=False)

由于某种原因这不起作用,并且脚本也没有给出任何错误消息。所以,我尝试这样做

os.system("python script.py parameter_one_name parameter_one_value parameter_two_name parameter_two_value)

这有效并且脚本按预期工作。我的问题是当参数存储在字符串中时是否可以调用脚本? 例如,

parameter = parameter_one_name parameter_one_value+parameter_two_name parameter_two_value)

带参数执行脚本

到目前为止我在 SO 上找不到任何东西,所以如果有人能提供帮助,那将是一个很大的帮助。

最佳答案

如果参数在字典中d:

import sys
import subprocess

params = [x for pair in d.items() if all(pair) for x in pair]
subprocess.check_call([sys.executable, 'script.py'] + params)

关于python - 从另一个 Python 脚本调用一个 Python 脚本,参数存储在字符串中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22932656/

相关文章:

python - 在 Python 中用多色线绘制时间序列

python - 如何压缩多个 for 语句以便用户可以更改它们的数量

Python捕获子进程输出

python-3.x - Python 子进程,将 rsync 与 ssh key 文件一起使用,方法调用出错

Python3 GTK3 - 单击后立即将按钮更改为不敏感

python - 如何从 Flask Rest API 在后台运行长时间运行的 python 脚本?

Python - 隐藏/最小化子进程窗口

python - pytorch Faster-RCNN 的验证损失

python - 如何在文件上使用 write() 方法而不替换字符?

Python:使用 Pool.map 将函数作为参数传递给子进程