最近剛接觸python的time模塊想做一個時鍾,但是遇到一個問題,我想一直讓時間自己刷新但是用print的話每次都得輸出一行,然后我就用到了""/r""
\r介紹:
\r 代表回車,也就是打印頭歸位,(光標)回到當前行的開頭。
1.我的思路是讓每次打印的的時間后面添加一個\r,這樣第二次(光標重新回到開頭)打印的的數據可以覆蓋第一次的數據
2.代碼如下
from time import *
def shizhong():
s = localtime()
gs ="%H %M %S"
sp =strftime(gs,s).split(" ")
print("北京時間:%s:%s:%s"%(sp[0],sp[1],sp[2]),end="\r")
while True:
shizhong()
sleep(1)
3.當我在終端運行時,一秒打印一次時間而且,第二次覆蓋第一次,但是我發現在pycharm中輸出時,卻輸出位空,這時候我就在想終端的輸出顯示和pycharm控制台不一樣吧,這時候我把代碼改成如下代碼就能輸出了!!
from time import *
def shizhong():
s = localtime()
gs ="%H %M %S"
sp =strftime(gs,s).split(" ")
print("\r北京時間:%s:%s:%s"%(sp[0],sp[1],sp[2]),end="")
while True:
shizhong()
sleep(1)
4.(pycharm下)我把\r放在了輸出的最前面,這時候我明白了為什么輸出不出來了,如果\r放在后面的話前面數據就會被一直覆蓋根本打印不出來
如果是放在前面就能打印\r后面的了遇到第2個\r就把前面的數據覆蓋了,這樣就實現了數據刷新。
5.我發現終端的打印輸出和pycharm的打印輸出不太一樣,但是不知道為什么會這樣,求大牛指導。