python - Pynput 键盘记录器仅返回 Shift、Command、空格和 Capslock 键

标签 python macos

我希望之前的话题没有讨论过这个问题。我的搜索结果没有返回任何相关内容,但请随时赐教!

我正在编写一个非常基本的 Python 键盘记录器(用于更大项目的一部分)。我正在使用 pynput 来监听击键,并使用日志记录模块将它们写入 txt 文件(见下文)。到目前为止,它似乎可以正常工作,唯一的问题是它只会记录 shift、command、space 和 caps locks 键。不会记录所有其他击键,即字母、数字等。

我正在运行 OSX 10.12 (Sierra),Python 3.5.2。

任何关于为什么会这样(以及可能的解决方案)的建议/想法将不胜感激。

谢谢。

    from pynput.keyboard import Key, Listener
    import logging

    log_dir = ""

    logging.basicConfig(filename=(log_dir + 'key_log.txt'), 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() 

最佳答案

单个字符键和其他键的处理方式不同。为你的 on_press 函数试试这个:

def on_press(key):
    try: logging.info(key.char) # letters, numbers etc
    except: logging.info(key.name) # other keys

关于python - Pynput 键盘记录器仅返回 Shift、Command、空格和 Capslock 键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42603000/

相关文章:

python - 如何压缩一组存储在 python 列表中的列表?

python - 对数据进行分组,然后将时间戳列转换为行

macos - 如果从主线程外部调用 dispatch_main 会发生什么?

python - noob,但是我在我的mac上安装了python 2.7.5,如何我 "target"那个而不是内置的2.7.2?

ruby - 如何为 Ruby 永久修复 "dyld: Library not loaded:/usr/local/opt/gmp/lib/libgmp.10.dylib"?

python - 如何在 python 上读取具有相似名称的文件,重命名它们,然后使用它们?

python - 从python字符串中删除奇怪的字符

Python urllib 卡住特定的 URL

linux - 毫秒到 Excel 导致日期相差 4 年

macos - Laravel Homestead 在 SSH 身份验证方法 : private key on mac 中挂起