我需要使用 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/

10-11 08:58