首頁>Program>source

在Unix上,我可以使用 \r (迴車)或 \b (退格键)覆盖外壳中的当前行(在已经可见的文字上print)。

我可以在windows命令列中使用Python指令碼實現相同的效果吗?

我尝試了curses模組,但windows上似乎不可用。

最新回復
  • 5月前
    1 #

    是:

    import sys
    import time
    def restart_line():
        sys.stdout.write('\r')
        sys.stdout.flush()
    sys.stdout.write('some data')
    sys.stdout.flush()
    time.sleep(2) # wait 2 seconds...
    restart_line()
    sys.stdout.write('other different data')
    sys.stdout.flush()
    

  • 5月前
    2 #

    import sys 
    import time
    for i in range(10):
        print '\r',         # print is Ok, and comma is needed.
        time.sleep(0.3)
        print i,
        sys.stdout.flush()  # flush is needed.
    

    如果在IPython笔記本上,就像這樣:

    import time
    from IPython.display import clear_output
    for i in range(10):
        time.sleep(0.25)
        print(i)
        clear_output(wait=True)
    

    http://nbviewer.ipython.org/github/ipython/ipython/blob/master/examples/notebooks/Animations%20Using%20clear_output.ipynb

  • 5月前
    3 #

    我知道這很老,但是我 想要告诉我的版本(它可以在我的PC上的cmd中執行,但不能在空闲狀態下執行)覆盖Python 3中的一行:

    >>> from time import sleep
    >>> for i in range(400):
    >>>     print("\r" + str(i), end="")
    >>>     sleep(0.5)
    

    EDIT: 它可以在windows和Ubuntu上執行。

  • 5月前
    4 #

    我只是遇到了這个問题.您仍然可以使用 \r ,即使在windows Command Prompt中,它也只帶您迴到上一个換行符( \n )。

    如果您執行以下操作:

    cnt = 0
    print str(cnt)
    while True:
        cnt += 1
        print "\r" + str(cnt)
    

    您將获得:

    0
    1
    2
    3
    4
    5
    ...
    

    那是因為 \r 只返迴到最後一行.由於您已经在最後一个print語句中寫入了換行符,因此游標將从新的空行的開頭移至同一新的空行的開頭。

    為說明起见,在print第一个0後,游標將在此處:

    0
    | # <-- Cursor
    

    当你 \r ,您將轉到该行的開頭.但是您已经處於行首。

    解決方法是避免print \n 字元,因此您的游標与 \r在同一行 正確覆盖文字.你可以用 print 'text',做到 .逗號可防止print換行符。

    cnt = 0
    print str(cnt),
    while True:
        cnt += 1
        print "\r" + str(cnt),
    

    現在它將正確地重寫行。

    請註意,這是Python 2.7,因此是 print 語句。

  • 5月前
    5 #

    簡單方法:)

    import sys
    from time import sleep
    import os
    #print("\033[y coordinate;[x coordinateH Hello")
    os.system('cls')
    sleep(0.2)
    print("\033[1;1H[]")
    sleep(0.2)
    print("\033[1;1H  []")
    sleep(0.2)
    print("\033[1;1H    []")
    sleep(0.2)
    print("\033[1;1H      []")
    sleep(0.2)
    print("\033[1;1H        []")
    sleep(0.2)
    print("\033[1;1H      []")
    sleep(0.2)
    print("\033[1;1H    []")
    sleep(0.2)
    print("\033[1;1H  []")
    sleep(0.2)
    print("\033[1;1H[]")
    sleep(0.2)
    

  • 使用ASPNET MVC將檔案上傳到資料庫
  • hibernate:JPA 20多對多附加欄