从Python内部执行脚本
我有一个叫做playgame.cmd的文件,我想在我的Python代码中执行它。
这个文件是一个遗传算法,它会运行游戏(输入是个体),然后等待游戏完成这个个体的运行,再从游戏日志中解析数据,输出这个个体的适应度。
在.cmd文件里面(我觉得这不重要):
python tools/playgame.py "python MyBot.py" "python tools/sample_bots/python/HunterBot.py"
--map_file tools/maps/example/tutorial1.map --log_dir game_logs --turns 60 --scenario
--food none --player_seed 7 --verbose -e
(如果你在想,这个是关于蚂蚁人工智能挑战的)
这些都是细节。我的问题就是标题所说的: 我该如何在Python中从中间启动这个脚本,等待脚本完成后,再继续执行Python代码?这个脚本文件和我的Python文件AntEvolver.py在同一个文件夹里。
2 个回答
0
这是一个非常简单的代码片段:
import subprocess
# do your stuff with sys.argv
subprocess.Popen("python MyBot.py", shell=True).communicate()
# script executed and finished, you can continue...
3
如果你想在一个Python脚本中启动一个.cmd文件,然后这个.cmd文件再启动两个Python的副本,我觉得你应该先放慢脚步,退一步想想,怎么才能让所有这些东西在一个Python解释器里运行。不过,直接回答你的问题,你可以使用 os.system()
(或者这里提到的subprocess模块)来实现: