【发布时间】:2018-06-16 05:31:52
【问题描述】:
我制作了一个程序,最后要求您重新启动。
我import os 并使用了os.execl(sys.executable, sys.executable, * sys.argv)
但是什么也没发生,为什么?
代码如下:
restart = input("\nDo you want to restart the program? [y/n] > ")
if str(restart) == str("y"):
os.execl(sys.executable, sys.executable, * sys.argv) # Nothing hapens
else:
print("\nThe program will be closed...")
sys.exit(0)
【问题讨论】:
-
这很不寻常。你为什么试图从程序中重新调用程序?
-
restart == 'y',str是多余的。另外,为什么不直接使用while? -
@claudio26 试试看:os.execv(sys.executable, ['python'] + sys.argv)
-
@Anup 是的,解决了这个问题。非常感谢:)
-
这看起来像XY Problem。实现这一点的正确方法是重构代码,这样您就可以简单地调用一个函数来重新运行程序。