我正在使用模块'wikipedia'、'wolframalpha'和'pyttsx3'在Python 2.7中制作一个个人助理。我这样做是为了让用户可以提出问题,然后计算机将搜索维基百科和 Wolfram 并使用 Pyttsx 说出答案。这一切都工作正常,但计算机需要一段时间才能获取问题的结果,我想知道是否可以添加一个简单的"......加载...」消息 而 是 这样做。我已经在下面添加了代码,如果您能回复,那就太好了。
import wikipedia
import wolframalpha
import pyttsx3;
engine = pyttsx3.init();
while True:
my_input = raw_input("Question: ")
try:
#wolframalpha code here
app_id = "Q2HXJ5-GYYYX6PYYP"
client = wolframalpha.Client(app_id)
res = client.query(my_input)
answer = next(res.results).text
print(answer)
engine.say(answer);
engine.runAndWait();
except:
try:
#wikipedia code here
print(wikipedia.summary(my_input))
except:
print("Sorry nothing can be found from your query")
如果要在 API 调用完成后删除Loading...
,只需使用转义码ESC[1000D
将光标移动到该行的开头即可。请注意,您必须在此处使用sys.stdout.write()
而不是打印,因为我们希望这一切都发生在同一行上。
import sys
// Before API Call
sys.stdout.write("Loading...")
sys.stdout.flush()
// After API Call
sys.stdout.write(u"u001b[1000D")
print "Done! "
请注意u
继续处理双引号字符串。这在Python 2.x
中是必需的,因为它包含特殊字符,但在Python 3
中可以省略。
(顺便说一下,Done
上多余的空格只是为了让字符串比Loading...
长,以便它完全替换它,而不会在末尾留下ng...
(