我在Python2.7中使用“wikipedia”、“wolframalpha”和“pyttsx3 3”模块制作了一个个人助理。我这样做是为了让用户可以问一个问题,然后计算机将搜索维基百科和Wolfram,并使用Pyttsx说出答案。这一切都很好,但计算机需要一段时间来获取问题的结果,我想知道是否可以添加一个简单的“...loading.”在做这件事的时候留言。我已经添加了下面的代码,如果你能回应的话,那就太好了。
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")发布于 2018-05-30 08:05:56
如果您想在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... )
https://stackoverflow.com/questions/50596775
复制相似问题