代码之家  ›  专栏  ›  技术社区  ›  dildeolupbiten

Python:如何在终端上使用回车打印值

  •  -1
  • dildeolupbiten  · 技术社区  · 9 年前

    当我使用PyCharm运行下面的脚本时,下载过程中不会打印换行符。

    以下是代码:

    #!/usr/bin/env python3
    # -*- coding: utf-8 -*-
    
    
    import time
    import ssl
    import urllib.request
    
    
    def UrlOpen(url, filename):
        data = urllib.request.urlopen(url=url, context=ssl.SSLContext(ssl.PROTOCOL_SSLv23))
        size = int(data.headers.get("content-length"))
        with open(filename, "wb") as f:
            count = 0
            now = time.time()
            for i in data:
                count += len(i)
                f.write(i)
                print("\rSize: {} b, Downloaded: {} b, Completed: {} %, Elapsed: {} s, Speed: {} b/s"
                      .format(size,
                              count,
                              int(100 * count / size),
                              int(time.time() - now),
                              count / (time.time() - now)), flush=True, end="")  
    
    
    if __name__ == "__main__":
        test_url = "http://muhendislik.istanbul.edu.tr/insaat/wp-content/uploads/2015/10/temel_in%C5%9Faat%C4%B1.pdf"
        file_path = "/home/tanberk/Masaüstü/test.pdf"
        UrlOpen(test_url, file_path)
    

    在终端上使用此脚本时,如何打印单行?提前谢谢。

    1 回复  |  直到 9 年前
        1
  •  1
  •   Josh J    9 年前

    \r 是一种老式的Mac线终止符或回车符。你是说 \n 换行?

    print 始终包含换行符。你必须使用 sys.stdout.write 排除它,或使用 end= 从未来打印的函数版本的关键字参数。