首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Python2.7中加载消息?

在Python2.7中加载消息?
EN

Stack Overflow用户
提问于 2018-05-30 05:11:24
回答 1查看 105关注 0票数 1

我在Python2.7中使用“wikipedia”、“wolframalpha”和“pyttsx3 3”模块制作了一个个人助理。我这样做是为了让用户可以问一个问题,然后计算机将搜索维基百科和Wolfram,并使用Pyttsx说出答案。这一切都很好,但计算机需要一段时间来获取问题的结果,我想知道是否可以添加一个简单的“...loading.”在做这件事的时候留言。我已经添加了下面的代码,如果你能回应的话,那就太好了。

代码语言:javascript
运行
复制
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")
EN

Stack Overflow用户

回答已采纳

发布于 2018-05-30 08:05:56

如果您想在API调用完成后删除Loading...,可以使用转义代码ESC[1000D将光标移到该行的开头。请注意,您必须使用sys.stdout.write()而不是在这里打印,因为我们希望所有这些都发生在同一行中。

代码语言:javascript
运行
复制
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... )

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50596775

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档