Как предотвратить печать () поднять ввод текста, когда пользователь печатает - PullRequest
0 голосов
/ 23 декабря 2018

По сути, у меня есть асинхронный рабочий, который делает что-то, но я могу поймать пользовательскую командную строку в любое время.

Проблема только визуальная, когда пользователь печатает, а код что-то печатает, текстПользователь печатал вместе с печатным текстом.Как сделать последнюю строку «изолированной» от консоли?

это пример кода:

import queue
import  threading
import time
import heapq

def worker():
    while True:
        item = q.get()
        if item is None:
            break
        do_work(item)
        #q.task_done()
        time.sleep(2)
        q.put(item)



def do_work(item):
    print(item,end = '')
    print(time.time(), end = '')


q = queue.PriorityQueue()
num_worker_threads = 1
threads = []
for i in range(num_worker_threads):
    t = threading.Thread(target=worker)
    t.start()
    threads.append(t)


fruits = [(1,"apple"), (2,"banana"), (3,"cherry")]
for x in fruits:
  q.put(x)

gameFinished = 0
# block until all tasks are done
#q.join()

while not gameFinished:
    q.put((-1,input()))

# stop workers
for i in range(num_worker_threads):
    q.put(None)
for t in threads:
    t.join()


input("Press enter to exit ;)")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...