Я пытаюсь написать оболочку, которая должна запускать соединения с сокетами в отдельном потоке.В моих тестах, когда print()
используется в то время, когда cmd.Cmd.cmdloop()
ожидает ввода, печать отображается неправильно.
from core.shell import Shell
import time
import threading
def test(shell):
time.sleep(2)
shell.write('Doing test')
if __name__ == '__main__':
shell = Shell(None, None)
testThrd = threading.Thread(target=test, args=(shell,))
testThrd.start()
shell.cmdloop()
Когда запускается вышеуказанная команда, вот что происходит:
python test.py
Welcome to Test shell. Type help or ? to list commands.
>>asd
*** Unknown syntax: asd
>>[17:59:25] Doing test
Как видите, печать из других потоков добавляет вывод после подсказки >>
не в новой строке.Как я могу сделать так, чтобы он отображался в новой строке и появлялся запрос?