我一直在四处寻找我的问题的答案,但一直不走运。我想答案是使用原生python,希望很简单。
我的问题是我在我的tkinter应用程序中使用了子进程,但其中一个命令要求你编写Y / N以确保你想继续执行该操作。
所以当我看到这样的消息时,我正在寻找一种方法将y写入终端: 你确定你要继续吗? (Y / N)
我已经尝试过运行subprocess.run(" y"),但这似乎不起作用。
我在Debian Linux上测试它并调用询问我是否要继续的命令,是subprocess.getoutput(),以便我可以检查错误。
CODE
class RemovePublicKeyDialog:
def __init__(self, parent):
top = self.top = Toplevel(parent)
Label(top, text="Who to remove?").pack()
self.e = Entry(top)
self.e.pack(padx=5)
b = Button(top, text="REMOVE", command=self.ok)
b.pack(pady=5)
def ok(self):
#print("value is " + self.e.get())
key = self.e.get()
cmd = subprocess.getoutput("gpg --delete-keys " + key)
print(cmd)
if ("key \"" + key + "\" not found" in cmd):
messagebox.showerror("Error", "No such public key.")
elif ("Delete this key from keyring?" in cmd):
#subprocess.run("echo 'y'")
messagebox.showinfo("Success", "Public key \"" + key + "\" deleted from keyring.")
else:
messagebox.showerror("Error", "Unknown error, did you input a key?")
self.top.destroy()
这是"主要"代码,一切正常,但只是我需要输入Y才能继续。