我正在尝试从另一个脚本调用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/