同时打印和输入python多线程

时间:2019-01-21 23:52:57

标签: python multithreading printing command-line-interface

我想构建类似聊天的应用程序。我有两个线程,一个用于用户输入,一个用于打印收到的消息。当套接字收到消息时,它会打印出来,但会破坏用户输入。我想知道打印是否有任何方法可以跳过输入行。

https://imgur.com/ZlTIIqT

您可以看到客户端连接时如何删除“ >>”。我只想同时打印和输入,而不会中断输入。

打印

def listen_clients(self):
    while True:
        conn, addr = self.sock.accept()
        print(clr("[+] Client connected ({}:{})".format(addr[0], addr[1]), "green"))
        self.clients.append({
            "ip": addr[0],
            "port": addr[1],
            "conn": conn })

输入

def initiate_cli(self):
    while True:
        command = input(" >> ")
        if command == "clients":
            for client in self.clients:
                print("  {0:3}: {1}: {2:5}".format(self.clients.index(client), client["ip"], client["port"]))

1 个答案:

答案 0 :(得分:0)

我找到了解决诅咒的办法。如果有人觉得有用,这是代码。

min