微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用input的Python中的EOFError

如何解决使用input的Python中的EOFError

我想创建一个脚本,该脚本将检查学生提交的代码是否按预期工作。代码经常涉及到让用户输入代码。我的想法是运行两个线程,一个运行代码,另一个运行模拟输入,然后检查结果是否匹配。
当前的问题是,在线程内部多次运行输入会导致此错误

EOFError:读取一行时出现EOF。

错误的原因是什么,如何解决?在线程外运行相同的代码时,不会导致错误

import pynput
import threading
import time
from pynput.keyboard import Key,Controller
from queue import Queue

answer_queue = Queue()

def control_thread(answer_queue):
    time.sleep(1)
    keyboard = Controller()
    
    keyboard.press('5')
    keyboard.release('5')
    time.sleep(0.1)
    keyboard.press(Key.enter)
    keyboard.release(Key.enter)
    try:
        message = answer_queue.get(timeout = 0.1)
        split_message = message.split(";") 
        msgQueue.task_done()
        print(message)
    except:
        pass


def solution_thread(answer_queue):
    length = int(input())
    width = int(input())
    
    answer_queue.put(length)#,width)
    
solution = threading.Thread(target = solution_thread,args = (answer_queue,))
solution.start()
control = threading.Thread(target = control_thread,))
control.start()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。