在 Python 2.7 中加载消息?
Loading message in Python 2.7?
我正在 Python 2.7 中使用模块 'wikipedia'、'wolframalpha' 和 'pyttsx3' 制作个人助理。我这样做是为了让用户可以提出问题,然后计算机将搜索维基百科和 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...
)
我正在 Python 2.7 中使用模块 'wikipedia'、'wolframalpha' 和 'pyttsx3' 制作个人助理。我这样做是为了让用户可以提出问题,然后计算机将搜索维基百科和 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...
)