为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕容3067478 2019-07-15 09:32:39
从另一个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),因为我并不拥有它。我想一定有办法做这件事,我只是搞不懂你是怎么做的。
查看完整描述

3 回答

?
吃鸡游戏

TA贡献1829条经验 获得超7个赞

理想情况下,您希望运行的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解释器进程,而不需要任何葡萄干。


查看完整回答
反对 回复 2019-07-15
  • 3 回答
  • 0 关注
  • 3522 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信