python一键清屏_python如何实现清屏?

直接用这个好了

import time

def main():

content = '北京欢迎你为你开天辟地..........'

while True:

print('\r' + ' ' * 20, end = '')

print('\r' + content, end = '')

time.sleep(0.2)

content = content[1:] + content[0]

if __name__ == "__main__":

main()

原回答:

import time

for i in range(0, 10):

print('\r\x1b[K', end = '')

print('\r' + '#' * (11 - i), end = '')

time.sleep(1)

print函数可以指定以什么字符串结尾, 默认是"\n", 这里为了不换行, 设这个参数为空字符串.print函数的文档

2. 两个控制符: '\r'(CR)是回车(定位至当前行开头), '\n'(LF)是换行(定位至下一行). 你可以理解为一个控制光标向左, 一个向下. 在类Unix系统下面, '\n'是定位至下一行的开头, 所以每一行都以'\n'(CR)结尾. 但是上古时期的DOS, '\n'仅表示定位下移一行, 因此需要配合'\r'来定位至该行开头. 这也是Windows下面默认行尾是'\n\r'(CRLF)的原因.

手头有个8086上汇编的有趣例子, 看看在每一行结尾输出不同行尾符的不同情况:这是行尾是CRLF的情况

现在注释掉输出'\r'的部分:懒得等它运行完了

当然这是上古时期的特性了(逃

扯远了, 回到代码上来.

我们如果要做到这个所谓的跑马灯的效果, 每次输出前需要做下面的事情:重新定位至这一行开头.

清除之前的输出结果.

同时需要保证:

3. 仅输出自己想要输出的内容, 不附加换行.

3的实现(两种方式):

print('xxx', end = '')

或者

import sys

sys.stdout.write('xxx')

sys.stdout.flush()

1的实现:借助'\r'

2的实现(同样两种方式):

print(' ' * 10, end = '')

输出一堆空格把之前的内容替换掉 (需要计算需要多少空格)

或者

print('\x1b[K', end = '')

'\x1b'对应的ASCII码是ESC , 它配合后面的一个字符, 作用是设置给终端设置输出属性.

'\x1b[K'的含义是清除后面的内容.人类身份验证 - SegmentFault​segmentfault.com

比如print("\x1b[34mblue\x1b[0m") 可以输出蓝色字体(如果支持的话

最后, 如果有兴趣的话, 可以看看这个项目https://github.com/verigak/progress​github.com

如果想偷懒的话, 把你代码里的那个'cls'换成'clear', 这才是mac下的清屏指令. (印象中好像是

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值