我需要使用 Python 打印出基于 this answer 的旋转风扇。
import threading
import subprocess
I = 0
class RepeatingTimer(threading._Timer):
def run(self):
while True:
self.finished.wait(self.interval)
if self.finished.is_set():
return
else:
self.function(*self.args, **self.kwargs)
def status():
global I
icons = ['|','/','--','\\']
print icons[I]
I += 1
if I == 4: I = 0
timer = RepeatingTimer(1.0, status)
timer.daemon = True # Allows program to exit if only the thread is alive
timer.start()
proc = subprocess.Popen([ 'python', "wait.py" ])
proc.wait()
timer.cancel()
这段代码可以显示风扇,但回车显示如下。
|
/
--
\
|
/
--
...
在不移动插入符号位置的情况下打印字符的python代码是什么?
最佳答案
\n
(新行)由您的 print
语句自动插入。避免它的方法是用逗号结束你的陈述。
如果您希望您的风扇自己在线,请使用:
print icons[I]+"\r",
\r
表示回车。如果您希望风扇位于非空行的末尾,请使用
\b
作为退格字符:print icons[I]+"\b",
但要小心不要在它后面写粉丝角色以外的任何东西。
由于 print 有一些其他特性,您可能希望使用 kshahar 建议使用
sys.stdout.write()
。关于用于动画旋转风扇以使其出现在适当位置的 Python 代码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5437395/