簡體   English   中英

我正在嘗試一次打印多行,每行在 python 2.7.11 中都有一個設定速度的延遲打印

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM