因此,我正在创建一个小型python程序,它将使用subprocess.call()
函数启动其他程序。我想知道是否有任何方法可以在CLI中共同创建可单击的框,以帮助用户知道他/她有什么选项,并使其更易于选择。你知道吗
目前我只使用input()
函数和if/elif/else
函数来确定要启动什么。我想把它转换成CLI上的一个可点击的界面,这样除了点击之外就不需要任何输入了。你知道吗
这是我目前正在使用的。还没有找到任何关于这样一个选择的材料,也许我找得不够仔细。你知道吗
import getpass
import subprocess
import os
OSPath = "/SYS64 3.7/"
full_path = os.getcwd()
CurrentPath = ""
dir_path = os.path.dirname(os.path.realpath(__file__))
answer = input("INPUT BOOT PARAMETER ")
if answer == "jdos":
subprocess.call(["python3",dir_path + OSPath + "bootthingy.py"])
subprocess.call(["python3",dir_path + OSPath + "jdosos.py"])
elif answer == "jdos.fboot":
subprocess.call(["python3",full_path + OSPath + "jdosos.py"])
elif answer == "jdos.admin":
user = getpass.getpass("username: ")
password = getpass.getpass("password: ")
bootcheck = 0
with open('userpass.txt', 'r') as file:
for line in file:
line = line.strip('\n')
login = line.split(',')
if login[0] == user and login[1] == password:
subprocess.call(["python3",full_path + OSPath + "jdososadmin.py"])
bootcheck = 1
if bootcheck == 0:
print("Incorrect user or password.")
elif "jdos.exp" in answer:
subprocess.call(["python3",full_path + OSPath + "jdosexperimentail.py"])
elif answer == "cancel":
print("")
else:
print("invalid")
与用户在input()
中键入jdos
不同的是,您将有4个包含4个不同选项的可单击框,它们看起来像这样:[jdos] [jdos.fboot] [jdos.admin] [jdos.exp]
,如果单击,每个框都运行subprocess.call()
我尝试过使用npyscreen
包,但未能成功运行
这就是我使用提供的npyscreen
代码时的样子。你知道吗
这就是当我选择一个框并点击OK时发生的情况
Python program does not launch properly...
如您所见,程序确实在运行,它只是覆盖了最上面的文本,并且我无法在input('C:/SYS64 3.7> ')
函数中输入任何内容,我认为这可能会导致npyscreen
应用程序无法关闭。我对npyscreen
还是个新手,我不知道它到底是怎么工作的。你知道吗
Npyscreen允许您制作控制台应用程序,您可以要求用户提供一些信息。你知道吗
你可以继续使用这个模板,我只是用基本的方法。我建议你阅读这个图书馆的文献。你知道吗
相关问题 更多 >
编程相关推荐