[英]How can I print multiple lines, having subsequent lines replacing each of them independently (Python)
[英]I am trying to print multiple lines at once, with each line having a delayed print of a set speed in python 2.7.11
基本上,
延遲打印 1
一次測試多行。
棕色的大狐狸跳過了懶惰的狗。
應該同時打印,同時使用這個 function
import time
import sys
text_speed = raw_input("What speed? > ")
def delay_print(s):
for c in s:
sys.stdout.write(c)
sys.stdout.flush()
if text_speed == "fast":
time.sleep(0.075)
elif text_speed == "slow":
time.sleep(.275)
elif text_speed == "normal":
time.sleep(.175)
delay_print("Delay Print 1 \n")
delay_print("Multiple lines at once test. \n")
delay_print("The big brown fox jumped over the lazy dog. \n")
那可能嗎?
當我運行它時,它會一個接一個地延遲打印每個字符串,但我似乎無法找到一種方法來一次打印所有 3 行。 即使沒有延遲打印。
好吧,這取決於,現在發生的事情是您下令執行 3 次具有不同屬性的 function,但如果我確實理解您,您希望以並行方式執行這 3 個函數,所以這是您可以在多處理http://docs.python.org/2/library/multiprocessing.html上使用的閱讀材料,希望對您有所幫助。
我不確定您如何將其設為 3 行,但是來自此 github 鏈接的程序會在控制台中生成一個進度條,並且在移動的部分之后有一些東西,因此您也許可以找到一種方法來添加此設置中的新行。
import math
import sys
import time
END = 170
MAX_LEN = 30
def get_progressbar_str(progress):
BAR_LEN = int(MAX_LEN * progress)
return ('[' + '=' * BAR_LEN +
('>' if BAR_LEN < MAX_LEN else '') +
' ' * (MAX_LEN - BAR_LEN) +
'] %.1f%%' % (progress * 100.))
for i in range(END + 1):
time.sleep(0.01)
progress = 1.0 * i / END
sys.stderr.write('\r\033[K' + get_progressbar_str(progress))
sys.stderr.flush()
sys.stderr.write('\n')
sys.stderr.flush()
你可能想把它放在最后,這樣控制台就不會關閉。
while True:
time.sleep(1)
注意:這必須從 a.py 文件運行,而不是從空閑運行才能正確查看進度條。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.