python一键清屏_python如何实现清屏?
直接用这个好了
import time
def main():
content = 北京欢迎你为你开天辟地..........
while True:
print( + * 20, end = )
print( + content, end = )
time.sleep(0.2)
content = content[1:] + content[0]
if __name__ == "__main__":
main()
原回答:
import time
for i in range(0, 10):
print( x1b[K, end = )
print( + # * (11 - i), end = )
time.sleep(1)
print函数可以指定以什么字符串结尾, 默认是" ", 这里为了不换行, 设这个参数为空字符串.print函数的文档
2. 两个控制符: (CR)是回车(定位至当前行开头), (LF)是换行(定位至下一行). 你可以理解为一个控制光标向左, 一个向下. 在类Unix系统下面, 是定位至下一行的开头, 所以每一行都以 (CR)结尾. 但是上古时期的DOS, 仅表示定位下移一行, 因此需要配合 来定位至该行开头. 这也是Windows下面默认行尾是 (CRLF)的原因.
手头有个8086上汇编的有趣例子, 看看在每一行结尾输出不同行尾符的不同情况:这是行尾是CRLF的情况
现在注释掉输出 的部分:懒得等它运行完了
当然这是上古时期的特性了(逃
扯远了, 回到代码上来.
我们如果要做到这个所谓的跑马灯的效果, 每次输出前需要做下面的事情:重新定位至这一行开头.
清除之前的输出结果.
同时需要保证:
3. 仅输出自己想要输出的内容, 不附加换行.
3的实现(两种方式):
print(xxx, end = )
或者
import sys
sys.stdout.write(xxx)
sys.stdout.flush()
1的实现:借助
2的实现(同样两种方式):
print( * 10, end = )
输出一堆空格把之前的内容替换掉 (需要计算需要多少空格)
或者
print(x1b[K, end = )
x1b对应的ASCII码是ESC , 它配合后面的一个字符, 作用是设置给终端设置输出属性.
x1b[K的含义是清除后面的内容.人类身份验证 - SegmentFaultsegmentfault.com
比如print("x1b[34mbluex1b[0m") 可以输出蓝色字体(如果支持的话
最后, 如果有兴趣的话, 可以看看这个项目https://github.com/verigak/progressgithub.com
如果想偷懒的话, 把你代码里的那个cls换成clear, 这才是mac下的清屏指令. (印象中好像是
