Очистка экрана с помощью os.system ("cls") не работает с сокетом - PullRequest
0 голосов
/ 13 декабря 2018

Итак, я делал многопользовательскую игру 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)

1 Ответ

0 голосов
/ 27 декабря 2018

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

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")

...