【问题标题】:How can you make Python code run Multiple Times for SUMO?如何让 Python 代码为 SUMO 运行多次?
【发布时间】:2021-10-27 20:11:37
【问题描述】:

我有一个在称为 SUMO 的模拟工具中运行的交通模拟,我试图让模拟重复运行多次(最多大约 50 次),但为了这个示例,我将使用 10次。我的主要代码在另一个 Python 文件中,它要求在运行之前将参数传递给它。这段代码很长,里面有多个 Python 函数,所以我不会在这个论坛上发布它,但为了简单起见,我们称之为performSIM.py

我负责重复主要代码的其他 Python 代码如下所示:

import traci
from sumolib import checkBinary
import argparse
import performSIM

for i in range(10):
   pythonFile = str(performSIM)
   exec(pythonFile)

我想知道循环主代码以重复运行模拟 10 次的正确方法是什么?当我运行上面的代码行时,出现以下错误:

Traceback (most recent call last):
  
File "C:\Users\#####\Sumo\USA Road Network SUMO_2021\running_Python.py", line 8, in <module>
    exec(pythonFile)
  
File "<string>", line 1

<module 'performSIM' from 'C:\\Users\\#####\\Sumo\\USA Road Network 
SUMO_2021\\performSIM.py'>
    
**SyntaxError: invalid syntax**

我该如何解决这个问题,让这个错误不断出现?

提前感谢您的帮助

【问题讨论】:

    标签: python simulation sumo


    【解决方案1】:

    您的performSIM 应该有一个主要功能,如果它还没有,您应该按照它的方式对其进行重组。一种常见的模式是将命令行参数作为参数传递给主函数。所以performSIM.py 可能看起来像这样:

    import sys
    
    def main(args):
        # parse the args
        # do other useful stuff
    
    if __name__ == "__main__":
        main(sys.argv)
    

    然后你的其他脚本可以简单地做

    import sys
    import performSIM
    
    for i in range(10):
        performSIM.main(sys.argv)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-23
      • 1970-01-01
      • 2018-12-23
      • 2017-07-11
      • 2021-11-03
      • 2021-06-06
      相关资源
      最近更新 更多