Python Trick —— 命令行显示

1 应用场景

在命令行展示下,有以下两种场景。

  • 进度条显示。在同一行展示不断的更新的进度条。
  • 信息显示/隐藏控制。比如希望向多个用户展示不同信息,各个用户彼此保密。

2 进度条展示

跟c语言类似,打印使用回车符'\r'。如下例。

import time
for i in range(100):
    print("\r当前下载进度{i}%,请耐心等待".format(i=i), end='')
    time.sleep(0.1)

print("\r下载完毕。                             ")

3 信息显示/隐藏控制

在命令行下,向两个用户展示两条信息。

  • 首先直接展示“信息1”,用户1来到电脑前记录“信息1”,之后通过回车将信息1隐藏。
  • 然后,用户2来到电脑前,敲击回车,显示信息2.

如下所示。其中wait_key函数支持windows/ubuntu。

import os
import sys
import tty
import termios

def wait_key():
    ''' Wait for a key press on the console and return it. '''
    result = None
    if os.name == 'nt':
        import msvcrt
        result = msvcrt.getch()
    else:
        import termios
        fd = sys.stdin.fileno()

        oldterm = termios.tcgetattr(fd)
        newattr = termios.tcgetattr(fd)
        newattr[3] = newattr[3] & ~termios.ICANON & ~termios.ECHO
        termios.tcsetattr(fd, termios.TCSANOW, newattr)

        try:
            result = sys.stdin.read(1)
        except IOError:
            pass
        finally:
            termios.tcsetattr(fd, termios.TCSAFLUSH, oldterm)

    return result

def cmp(a, b):
    return (a > b) - (a < b)

def wait_enter_key():
    while cmp(wait_key(), '\n') != 0:
        pass

# 显示信息1
print("信息1  (按下[回车]键,将隐藏信息1)", end='')
sys.stdout.flush()

# 回车后隐藏信息1
wait_enter_key()
print("\r请再次按下[回车]键,将显示信息2           ", end='')

# 再次回车后显示信息2
wait_enter_key()
print("\r信息2                                      ")

4 引用

转载于:https://www.cnblogs.com/sword03/p/10001849.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值