如何解决使用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 举报,一经查实,本站将立刻删除。