从另一个Python脚本运行Python脚本,传入参数

从另一个Python脚本运行Python脚本,传入参数

我想从另一个Python脚本中运行Python脚本。我希望像使用命令行那样传递变量。

例如,我将运行我的第一个脚本,它将遍历一个值列表(0、1、2、3),并将它们传递给第二个脚本。script2.py 0然后script2.py 1

我发现堆栈溢出问题1186789这是一个类似的问题,但是Ars的答案调用了一个函数,在这个函数中,我想运行整个脚本,而不仅仅是一个函数,而balapa的回答调用脚本,但是没有任何参数。作为测试,我将其改为如下所示:

execfile("script2.py 1")

但这并不是正确地接受变量。当我打印出sys.argv在script2.py中,它是对第一个脚本“[‘C:\script1.py’]的原始命令调用。

我真的不想更改原始脚本(即我的示例中的script2.py),因为我并不拥有它。

我想一定有办法做这件事,我只是搞不懂你是怎么做的。


慕容3067478
浏览 3523回答 3
3回答

吃鸡游戏

理想情况下,您希望运行的Python脚本将在接近尾声的代码中设置如下:def main(arg1, arg2, etc):     # do whatever the script doesif __name__ == "__main__":     main(sys.argv[1], sys.argv[2], sys.argv[3])换句话说,如果模块从命令行调用,它解析命令行选项,然后调用另一个函数,main()来做实际的工作。(实际参数将有所不同,解析可能更复杂。)但是,如果您想从另一个Python脚本调用这样的脚本,您可以简单地import它和电话modulename.main()而不是通过操作系统。os.system可以工作,但这是一种迂回(读“慢速”)的方法,因为您每次都要启动一个全新的Python解释器进程,而不需要任何葡萄干。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python