Python重新启动程序

问题描述 投票:0回答:3

我制作了一个程序,要求您重新启动。

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)
python restart python-os
3个回答
3
投票
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


2
投票

也许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...")

-3
投票
os.execv(sys.executable, ['python'] + sys.argv)
© www.soinside.com 2019 - 2024. All rights reserved.