通过 pyserial 控制计算机键盘



我不知道如何在一堆代码中使用正则表达式,我也不确定如何正确编码。我试图查找教程,指南,所有内容。但我仍然不明白,所以请帮助我修复我愚蠢的代码。

工作总结,我正在尝试编写一个小程序,该程序通过pyserial和microbit的帮助下控制我的计算机键盘。例如,当按下按钮 A 时,微比特通过 uart 将数据发送到我的计算机,而我的 python shell 在接收消息的最后,尝试匹配它并执行相应的命令。

这是微比特的代码

from microbit import *
uart.init(baudrate=57600, bits=8, parity=None, stop=1, tx=None, rx=None)
while True:
if button_a.is_pressed():
uart.write("Up")
display.show(Image.ARROW_NW)
if button_b.is_pressed():
uart.write("Down")
display.show(Image.ARROW_S)
else:
display.show(Image.ASLEEP)

这是我的python端的代码

import re
import serial
import keyboard
serialPort = serial.Serial(port = "COM5", baudrate=57600,
bytesize=8, timeout=2, stopbits=serial.STOPBITS_ONE)
serialString = ""
while(1):
(serialPort.in_waiting > 0)
serialString = serialPort.readline()
wordsa = ("up")
wordsb = ("down")
if():
words = [word.lower() for word in wordsa if re.match('^[a-zA-Z]+', word)]
keyboard.press_and_release('up')

问题是我想让 re 匹配通过 uart 在serialString = serial.Port.readline()从微比特接收的字符串或数据,如果微比特发送 UP,我希望 python 匹配接收到的数据是 UP 或 Down,然后分别按键盘键 UP 或 DOWN。运行我的这个糟糕的代码后,没有出现任何错误,它根本无法正常工作。我认为这是一个非常愚蠢的问题,但请帮助我。这个问题已经在我的大脑上烧了一个洞。

谢谢你,感谢DarryIG,个人资料链接。他拯救了我的日子

如果像我这样的初学者只是想在字符串上进行匹配。 不需要使用正则表达式。您可以使用运算符==来执行此操作,而=是分配。

例如:

Game = ['Dota2', 'LoL']; #Games that you play
Like = ['Dota2', 'LoL']; #Games that your friend likes
if Game == Like:
print ('True')
else:
print ('False')

输出 :True

注意:我知道我的答案很糟糕,但我只想回答这个问题,以防像我这样的人需要这些信息。感谢您的理解。

最新更新