V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Ahagotyou
V2EX  ›  程序员

求助, 关于 Python print 的一个小小小小小问题.

  •  1
     
  •   Ahagotyou · 2019-05-24 16:47:16 +08:00 · 2088 次点击
    这是一个创建于 2017 天前的主题,其中的信息可能已经有所发展或是发生改变。

    def p(): print("我是小米", end="\r") print("我是小米的哥哥大米", end="\r") print("我是雷布斯", end="\r")

    output: 我是雷布斯哥哥大米

    如何最后只显示 我是雷布斯. 这个函数效果是: 结果全部只显示在一行且以新输出覆盖旧输出, 问题是只是覆盖, 不会清除旧输出, 导致很尴尬.

    感谢了~

    11 条回复    2019-05-25 15:14:32 +08:00
    Ahagotyou
        1
    Ahagotyou  
    OP
       2019-05-24 16:49:41 +08:00
    ```
    print("服")
    ```
    lance6716
        2
    lance6716  
       2019-05-24 16:56:49 +08:00
    只用 print 做不到,需要调终端接口吧
    leoleoasd
        3
    leoleoasd  
       2019-05-24 17:03:36 +08:00 via Android
    可以打印退格键
    weyou
        4
    weyou  
       2019-05-24 17:07:12 +08:00 via Android   ❤️ 1
    这个问题跟语言无关。 这次打印的内容比上一次短的话,在后面补空格到相同的长度来覆盖上一次的打印就行了
    baobao1270
        5
    baobao1270  
       2019-05-24 17:14:14 +08:00
    每一次输出之前,输出一堆空格,先覆盖掉不久行了
    另外,建议用 format 函数统一输出长度
    cissoid
        6
    cissoid  
       2019-05-24 17:23:18 +08:00
    用 escape code

    print("\x1B[K 我是小米的哥哥大米", end="\r")
    lrxiao
        7
    lrxiao  
       2019-05-24 20:22:17 +08:00
    写一个 context manager hook 掉 sys.stdout 然后自己搞
    nondanee
        8
    nondanee  
       2019-05-24 20:35:47 +08:00
    "\r\033[K"
    Qzier
        9
    Qzier  
       2019-05-25 00:45:31 +08:00 via iPhone
    你需要用先清空标准输出,代码如下:
    Qzier
        10
    Qzier  
       2019-05-25 00:45:49 +08:00 via iPhone
    import sys
    from time import sleep

    messages = [
    '我是雷军',
    '我是小米',
    '我是大米'
    ]

    while True:
    for msg in messages:
    sys.stdout.flush()
    sys.stdout.write(f'\r{msg}')
    sleep(0.5)
    qcts33
        11
    qcts33  
       2019-05-25 15:14:32 +08:00
    你需要将终端想象成一个打字机,而\r 的作用只是把打字的位置强行拉回行首,并不会刷新原有输出,所以新的输出只是覆盖原有输出而已,没有被覆盖到的地方还是保留原状
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2644 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 11:30 · PVG 19:30 · LAX 03:30 · JFK 06:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.