我制作了一个程序,要求您重新启动。
I 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)
import os
import sys
restart = input("\nDo you want to restart the program? [y/n] > ")
if restart == "y":
os.execl(sys.executable, os.path.abspath(__file__), *sys.argv)
else:
print("\nThe programm will me closed...")
sys.exit(0)
os.execl(路径,arg0,arg1,...)
[sys.executable
:python可执行
[os.path.abspath(__file__)
:您正在运行的python代码文件。
*sys.argv
:剩余参数
它将再次执行程序,类似于python XX.py arg1 arg2
。
也许os.execv可以工作,但是如果您在环境和路径变量中设置了类似以下内容,为什么不直接使用os.system('python "filename.py"')
:>
import os
print("Hello World!")
result=input("\nDo you want to restart the program? [y/n] > ")
if result=='y':
os.system('python "C:/Users/Desktop/PYTHON BEST/Hackerrank.py"')
else:
print("\nThe program will be closed...")
os.execv(sys.executable, ['python'] + sys.argv)