Python выполнение кода, но с возможностью ввода команды

def test():
    for i in range(100):
        print(i)
        time.sleep(5)

def main():
    while True:
        response = input(">>> ")

        if response == 'quit':
            # do something

Есть ли библиотека с помощью которой можно реализовать систему ввода команды в консоли, но в этот момент будет работать какая-нибудь функция? Например, происходит парсинг и сохранение данных в .txt формат. Пользователь вводит команду: quit. Программа должна завершить свой процесс и ожидать ввод новой команды. Доступ к консоли должен быть постоянным.


Ответы (2 шт):

Автор решения: vsi-

Если вам нужно выполнение второй функции как отдельный файл, можно использовать multiprocessing, более простой вариант - использование thread, т.е мултьипоточность

→ Ссылка
Автор решения: Boro8ey
import threading
import time

class test(object):
    def __init__(self):
        self.array = []
    def timer(self):
        for i in range(100):
            self.array.append(f"id {threading.get_ident()} - {i}")
            time.sleep(5)
    def main(self):
        while True:
            response = str(input(">>> ")).lower()
            if response == "start":
                thr = threading.Thread(target=self.timer)
                thr.start()
            elif response == "get":
                print(self.array)

if __name__ == "__main__":
    my_thread = threading.Thread(target=test().main)
    my_thread.start()
→ Ссылка