Python shell 在尝试重新启动脚本时重新启动



我一直在编写一个打开文件并编辑它们的程序,但是为了使代码完成需要完成的操作,它必须自动重置自己,我花了一段时间浏览互联网寻求帮助,但似乎找不到其他人问这个问题。我试图用来重新启动的代码可能非常不对劲:

os.execl(sys.executable, sys.executable, * sys.argv)

任何帮助不胜感激。

import os
PassCount = 0
SetUp = 0
newpath = r"PassEncryptPY"
if not os.path.exists(newpath):
    os.makedirs(newpath)
f = open("PassEncryptPY/PassEncryptPY_PTF.txt", "a")
g = open("PassEncryptPY/PassEncryptPY_ETF.txt", "a")
if os.path.getsize(r"PassEncryptPY/PassEncryptPY_PTF.txt") == 0:
    print("we have detected that you dont have a password")
    pas = input("Your password: ")
    f.write(pas)
    SetUp = SetUp + 1
if os.path.getsize(r"PassEncryptPY/PassEncryptPY_ETF.txt") == 0:
    print("we have detected that you dont have a email")
    ema = input("Your email: ")
    g.write(ema)
    SetUp = SetUp + 1
if SetUp != 0:
    print("Set Up complete, restarting")
    f.flush()
    g.flush()
    os.fsync(f.fileno())
    os.fsync(g.fileno())
    import sys
    os.execl(sys.executable, sys.executable, * sys.argv)
f.close()
g.close()
sys.executable可能

不是你所期望的。(假设您使用./some_name.py而不是python ./some_name.py运行脚本(它几乎总是解释器而不是您正在运行的脚本。

您可能想要这样的东西:

own_name = sys.argv[0]
os.execl(own_name, own_name, *sys.argv[1:])

打印您的sys.executablesys.argv以查看差异。

最新更新