Очистка экрана с помощью os.system(cls) не работает с сокетом

Итак, я делал многопользовательскую игру Ascii на Python, и мне нужно было очистить фрейм для игры, но когда я хочу использовать os.system('cls'), он просто ничего не делает.

import socket,time
import subprocess as sp
import keyboard,os

def Main(k):
    s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    s.connect(("127.0.0.1",8000))
    while True:
        for Key,Command in k.items():
            if keyboard.is_pressed(Key):
                exec(Command)

        data = s.recv(2048).decode()
        data = data.replace("PlaceHolder","")
        lastdata = data
        s.send("-".encode())

        if not data == "":
            print(data+"\n"*2)
        elif data != "" and lastdata == "":
            sp.call('cls')

if __name__ == '__main__':
    keydict = {"w":'s.send("w".encode())',
               "d":'s.send("d".encode())',
               "a":'s.send("a".encode())',
               "s":'s.send("s".encode())',
               "esc":'exit()'}
    Main(keydict)

person Creepi    schedule 13.12.2018    source источник
comment
Это запускается на машине с Windows?   -  person mypetlion    schedule 13.12.2018
comment
Да, я использую Windows @mypetlion   -  person Creepi    schedule 13.12.2018
comment
Какое отношение очистка экрана имеет к сокетам?   -  person Remy Lebeau    schedule 14.12.2018
comment
Это просто цикл с кодом сокета, который не работает. Показать код.   -  person Mark Tolonen    schedule 14.12.2018
comment
Обновлен код...   -  person Creepi    schedule 15.12.2018
comment
@RemyLebeau У меня есть однопользовательская игра Ascii без сокета, и os.system('cls') работает, но знаю, что с сокетом это не так.   -  person Creepi    schedule 15.12.2018


Ответы (1)


Я сделал ошибки в своем коде и исправил их. Старый:

if not data == "":
        print(data+"\n"*2)
    elif data != "" and lastdata == "":
        sp.call('cls')

Новый:

if not data == "":
        os.system("CLS")
        print(data+"\n"*2)
        time.sleep(0.05)

Поэтому я удалил бесполезное выражение if, потому что оно просто не запускало os.system("CLS")

person Creepi    schedule 27.12.2018