现在考虑以下想法
我声明if/elif
类型来运行程序
如:
number=int(input("Enter a number :"))
If number ==0
Run program.py
Elif number ==1
Run Program2.py
Else number ==2
Run Program3.py
现在很明显,命令运行program.py
不起作用,所以我应该怎么做才能让它执行program.py
,如果它被选中并关闭我们选择号码的主程序?< / p>
答案 0 :(得分:1)
有几种方法可以运行外部代码。有subprocess和os.system()
来运行光盘上的任何其他程序,然后exec
运行您拥有的代码作为字符串或代码对象,然后有eval
这有点类似于exec
但只接受一个字符串并允许提供全局变量和本地变量。这些都是内置的。
但您可能并不真的想将外部脚本作为脚本运行。它通过正确地将sys.argv
传递给它们并确保它们获得正确的stdin / stdout和所有内容来创建各种问题。十分之九,你最好创建一系列函数(可能在其他文件中),导入它们并调用它们。
答案 1 :(得分:0)
您应该考虑了解子流程:https://docs.python.org/3/library/subprocess.html
对于像这样的东西,Popen选项是最有用的选项之一。
number=int(input("Enter a number :"))
If number == 0:
subprocess.Popen([sys.argv[0], param])
Elif number ==1:
subprocess.Popen([program2.py, param])
Else number ==2:
subprocess.Popen([program3.py, param])
注意:数字0将打开用于调用新进程的文件,以防您需要克隆&#34;你自己的计划。
编辑:Linux和Windows将要求您以不同方式执行此操作,如:
if platform.system() == "Linux":
subprocess.Popen([sys.argv[0], param])
else:
subprocess.Popen(["python", sys.argv[0], param])