簡體   English   中英

Spyder中的Python time.sleep:如何在print語句之間暫停?

[英]Python time.sleep in Spyder: how to pause between print statements?

編輯:鏈接的帖子沒有解決這個問題,這仍然是一個突出的問題。

我用Spython在Spyder中執行以下程序:

import time

print "Please enter your name."
userName=raw_input();
print "Now let's wait a few seconds, {}.".format(userName)
time.sleep(1)
print "Did you lose your patience?"

它提示用戶輸入他們的名字,然后(而不是打印第一行,等待,然后打印第二行),它會暫停,然后同時打印最后兩個打印語句的輸出。

當我從命令行運行時,它按預期工作。 所以有人知道我能做什么,以便腳本在Spyder / iPython中顯示所需的行為(我在Windows 7中運行,Spyder 2.2.5在Python 2.7中運行iPython)。

請注意,因為當我從命令行運行時,我得到了預期的行為, 為什么time.sleep提前暫停? 是不是透明適用,但也許很容易將解決方案移植到這種情況? 此外,在sleep命令之前運行'sys.stdout.flush()'似乎沒有做任何事情。

我在Spyder測試了這個,vanza的解決方案適合我。 你確定你把sys.stdout.flush()放在正確的行嗎? 它應該如下所示:

vanza's solution:

import time
import sys

print "Please enter your name."
userName=raw_input();
print "Now let's wait a few seconds, {}.".format(userName)
sys.stdout.flush() # <- *** it goes here ***
time.sleep(3)
print "Did you lose your patience?"

在輸入輸入之前,您可能需要稍微向下滾動iPython控制台,以便清楚地看到文本(否則它會保持有點低而不被注意到)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM