【问题标题】:pynput combining exclamation markpynput 结合感叹号
【发布时间】:2018-02-08 16:36:06
【问题描述】:

我尝试用 pynput 制作一个小键盘记录器。

这是我的代码:

from pynput.keyboard import Key, Listener
import os
import logging

log_dir = "C:\WindowsLogs\dist"
filename = "logging"
logging.basicConfig(filename=(log_dir + filename), level=logging.DEBUG, format='%(asctime)s: %(message)s')

def on_press(key):
    logging.info(str(key))

with Listener(on_press=on_press) as listener:
    listener.join()

一切正常,它也确实保存了每一个键。但是当感叹号被按下时,它会得到那个错误:

Traceback (most recent call last):
File "test2.py", line 16, in <module>
listener.join()

File "C:\Python27\lib\site-packages\pynput\_util\__init__.py", line 185, in join
six.reraise(exc_type, exc_value, exc_traceback)

File "C:\Python27\lib\site-packages\pynput\_util\__init__.py", line 140, in inner
return f(self, *args, **kwargs)

File "C:\Python27\lib\site-packages\pynput\keyboard\_win32.py", line 232, in _process
key = self._event_to_key(msg, vk)

File "C:\Python27\lib\site-packages\pynput\keyboard\_win32.py", line 265, in _event_to_key
msg in self._PRESS_MESSAGES))

File "C:\Python27\lib\site-packages\pynput\keyboard\_base.py", line 49, in __init__
'COMBINING ' + unicodedata.name(self.char))

KeyError: "undefined character name 'COMBINING EXCLAMATION MARK'"

代码有什么问题?那是什么意思?

【问题讨论】:

  • 这是您的代码的一部分,但不会运行。创建一个minimal reproducible example 并包含完整的回溯,以便我们知道是哪一行导致了错误。
  • 向我们展示您是如何打印按键的。我想 !根据 pynput 是一个特殊的
  • 感谢您的建议。这是我正在运行的代码。我还添加了整个错误消息。我希望你现在可以更好地使用它。

标签: python python-2.7 unicode keyboard


【解决方案1】:

我明白了!这是pynput中的一个错误。安装了旧版本,现在可以正常使用了!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-27
    • 2012-03-06
    • 2011-09-15
    • 2012-07-07
    • 1970-01-01
    • 1970-01-01
    • 2012-11-01
    相关资源
    最近更新 更多